天天看點

MySQL索引篇,索引的優缺點,分類及設計原則

索引在資料庫中的作用是快速找出某個列中一個特定值的行,不使用索引的話,MySQL必須從第一條記錄周遊到相關行,表越大,花費的時間越多,但是如果有索引,就能快速的到達某個位置去搜尋資料檔案,索引對于優化資料庫查詢速度有着不可替代的作用,本文主要給大家講解一下MySQL資料庫中,索引的優缺點,分類以及設計原則。

MySQL索引篇,索引的優缺點,分類及設計原則

索引的優點

1.通過建立唯一索引,可以保證資料庫每一行資料的唯一性

2.可以大大提高查詢速度

3.可以加速表與表的連接配接

4.可以顯著的減少查詢中分組和排序的時間。

MySQL索引篇,索引的優缺點,分類及設計原則

索引的缺點

1.建立索引和維護索引需要時間,而且資料量越大時間越長。

2.建立索引需要占據磁盤的空間,如果有大量的索引,可能比資料檔案更快達到最大檔案尺寸。

3.當對表中的資料進行增加,修改,删除的時候,索引也要同時進行維護,降低了資料的維護速度。

MySQL索引篇,索引的優缺點,分類及設計原則

索引的分類

1.普通索引(Normal):基本索引類型,允許在定義索引的列裡插入空值或重複值。

2.唯一索引(Unique):索引列值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。主鍵索引是一種特殊的唯一索引,不允許有空值。

3.單列索引:隻包含一個列的索引,一個表中可以有多個。

4.組合索引:包含多個列的索引,查詢條件包含這些列的最左邊的字段的時候,索引就會被引用,遵循最左綴原則。

5.全文索引(Full Text):在定義的值中支援全文查找,允許空值和重複值,可以在CHAR,VARCHAR或者TEXT字段類型上建立,僅支援MyISAM存儲引擎。

6.空間索引:針對空間資料做的索引,支援的資料類型有4種,分别是GEOMETRY,POINT,LINESTRING和POLYGON。建立空間索引的列必須聲明為非空值(NOT NULL),僅支援MyISAM存儲引擎。

MySQL索引篇,索引的優缺點,分類及設計原則

索引的設計原則

1.不是越多越好。

2.常更新的表越少越好。

3.資料量小的表最好不要建立索引。

4.不同的值比較多的列才需要建立索引。

5.某種資料本身具備唯一性的時候,建立唯一性索引,可以保證定義的列的資料完整性,以提高查詢熟度。

6.頻繁進行排序或分組的列(group by或者是order by)可以建立索引,提高搜尋速度7.經常用于查詢條件的字段應該建立索。

MySQL索引篇,索引的優缺點,分類及設計原則