MySQL學習總結(三)索引

來源:互聯網
上載者:User

標籤:

 

補充一下,上一章節中約束的一點東西。我們在為約束設定名稱的時候(標識符)推薦寫法“約束縮寫_欄位名”,這樣讓人看起來就會很清晰。例如:FK_Deptno,我們通過索引的名字就可以大概知道這是一個設定的關於Deptno欄位的外鍵。

一個索引包含表中按照一定順序排序的一列或者多欄欄位。建立索引主要是為了提高從表中檢索資料的速度。但是建立索引有利也有弊,優點是通過索引,可以提高查詢的速度。但是過多的建立索引會佔據許多的磁碟空間,因此在建立索引的時候一定要權衡利弊。

以下情況適合建立索引:

(1)經常被查詢的欄位

(2)經常出現在分組中的欄位

(3)表的主鍵或者是外鍵欄位

(4)設定唯一完整性條件約束的欄位

以下情況不適合建立索引:

(1)在查詢中很少被使用的欄位

(2)擁有許多重複的值的欄位

索引名在設定的時候,建議“index_欄位名”,這樣看起來很清晰。

索引根據建立方式又可以分為兩類,自動索引和手動索引。通過名稱我們可以簡單的理解,自動索引就是自動建立的索引(和廢話一樣。。),在設定表的主鍵或者其他設定完整性條件約束的時候,MySQL系統會自動建立索引。而手動索引,指的是我們主動在表上建立的索引,如所示:

 

1、建立索引

1.1 、建立普通索引

CREATE TABLE table_name(

        屬性名稱 資料類型,

        屬性名稱 資料類型,

       …

        INDEX 索引名(屬性名稱1)

)

1.2、在已經存在的表上建立普通索引

CREATE INDEX 索引名 ON 表名 (屬性名稱)

1.3、ALTER TABLE建立普通索引

ALTER TABLE table_name ADD INDEX 索引名 (屬性名稱)

 

2、建立唯一索引

唯一索引,就是在建立索引的時候,限制索引值必須是唯一值,通過該類型的索引可以更快的查詢某條記錄。

2.1 、建立表時建立唯一索引

CREATE TABLE table_name(

        屬性名稱 資料類型,

        屬性名稱 資料類型,

       …

       UNIQUE  INDEX 索引名(屬性名稱1)

)

2.2、在已經存在的表上建立唯一索引

CREATE UNIQUE   INDEX 索引名 ON 表名 (屬性名稱)

2.3、ALTER TABLE建立唯一索引

ALTER TABLE table_name ADD UNIQUE    INDEX 索引名 (屬性名稱)

 

注意:建立唯一索引的時候,如果表中該欄位有為空白值的時候,則唯一索引會建立失敗。

3、建立全文索引

全文索引主要關聯在資料庫中資料類型為CHAR、VARCHAR、TEXT的欄位上,以便能夠更加快速的查詢資料量較大的字串類型的欄位。

 

3.1 、建立表時建立全文索引

CREATE TABLE table_name(

        屬性名稱 資料類型,

        屬性名稱 資料類型,

       …

       FULLTEXT INDEX 索引名(屬性名稱1)

)

3.2、在已經存在的表上建立全文索引

CREATE FULLTEXT INDEX 索引名 ON 表名 (屬性名稱)

3.3、ALTER TABLE建立全文索引

ALTER TABLE table_name ADD FULLTEXT INDEX 索引名 (屬性名稱)

 

4、通過SQLyog建立索引

右鍵要建立索引的表,選擇改變表菜單,點擊“2個索引”,如所示:

通過SQLyog軟體,我們可以更加方便快捷的建立索引。而且介面也很簡單,易上手。

 

5、刪除索引

SQL文法:DROP INDEX index_name ON table_name;

通過SQLyog軟體,在表——>索引,點擊節點前面的加號,選中要刪除的索引,右鍵選擇“刪除索引”,根據提示選擇是,成功刪除,

 

或在改變表的索引列下刪除,上面已經介紹過。

MySQL學習總結(三)索引

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.