mysql建立索引的原則

2021-09-24 09:10:53 字數 1299 閱讀 2359

在mysql中使用索引的原則有以下幾點:

1、 對於查詢頻率高的字段建立索引;

2、 對排序、分組、聯合查詢頻率高的字段建立索引;

3、 索引的數目不宜太多

原因:a、每建立乙個索引都會占用相應的物理控制項;

b、過多的索引會導致insert、update、delete語句的執行效率降低;

4、若在實際中,需要將多個列設定索引時,可以採用多列索引

如:某個表(假設表名為student),存在多個字段(studentno, studentname, ***, address, phone, birthdate),其中需要對studentno,studentname欄位進行查詢,對***字段進行分組,對birthdate欄位進行排序,此時可以建立多列索引

index index_name (studentno, studentname, ***, birthdate);      #index_name為索引名

在上面的語句中只建立了乙個索引,但是對4個字段都賦予了索引的功能。

建立多列索引,需要遵循btree型別,

即第一列使用時,才啟用索引。

在上面的建立語句中,只有mysql語句在使用到studentno欄位時,索引才會被啟用。

如:     select * from student where studentno = 1000;      #使用到了studentno欄位,索引被啟用。

可以使用explain檢測索引是否被啟用

如:explainselect * from student where studentno = 1000;

5、選擇唯一性索引

唯一性索引的值是唯一的,可以更快速的通過該索引來確定某條記錄。例如,學生表中學號是具有唯一性的字段。為該字段建立唯一性索引可以很快的確定某個學生的資訊。如果使用姓名的話,可能存在同名現象,從而降低查詢速度。

6、盡量使用資料量少的索引

如果索引的值很長,那麼查詢的速度會受到影響。例如,對乙個char(100)型別的字段進行全文檢索需要的時間肯定要比對char(10)型別的字段需要的時間要多。

7、盡量使用字首來索引

如果索引欄位的值很長,最好使用值的字首來索引。例如,text和blog型別的字段,進行全文檢索會很浪費時間。如果只檢索欄位的前面的若干個字元,這樣可以提高檢索速度。

8、刪除不再使用或者很少使用的索引.

表中的資料被大量更新,或者資料的使用方式被改變後,原有的一些索引可能不再需要。資料庫管理員應當定期找出這些索引,將它們刪除,從而減少索引對更新操作的影響

ps:部分內容借鑑與

MySql 建立索引原則

為了使索引的使用效率更高,在建立索引時,必須考慮在哪些欄位上建立索引和建立什麼型別的索引。本小節將向讀者介紹一些索引的設計原則。1 選擇唯一性索引 唯一性索引的值是唯一的,可以更快速的通過該索引來確定某條記錄。例如,學生表中學號是具有唯一性的字段。為該字段建立唯一性索引可以很快的確定某個學生的資訊。...

Mysql索引建立原則

在mysql中使用索引的原則有以下幾點 1 對於查詢頻率高的字段建立索引 2 對排序 分組 聯合查詢頻率高的字段建立索引 3 索引的數目不宜太多 原因 a 每建立乙個索引都會占用相應的物理控制項 b 過多的索引會導致insert update delete語句的執行效率降低 4 若在實際中,需要將多...

MySQL索引建立原則

索引的目的是提公升查詢資料的效率,所以我們建索引的標準應該一切從提公升查詢效率為基準。對於有唯一值的列盡量使用唯一索引 索引長度盡量小一點,長度小的索引可以節省索引空間,也會使查詢的速度得到提公升,因為索引頁只有16k,索引列長度小的話,一頁可以容納更多的資料 太長的列可以選擇部分內容做索引,遵循最...