mysql創建索引的原則


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

 

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

 

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

 

3、 索引的數目不宜太多

      原因:a、每創建一個索引都會占用相應的物理控件;

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

 

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

      如:某個表(假設表名為Student),存在多個字段(StudentNo, StudentName, Sex, Address, Phone, BirthDate),其中需要對StudentNo,StudentName字段進行查詢,對Sex字段進行分組,對BirthDate字段進行排序,此時可以創建多列索引

      index index_name (StudentNo, StudentName, Sex, BirthDate);      #index_name為索引名

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

       創建多列索引,需要遵循BTree類型,

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

       在上面的創建語句中,只有mysql語句在使用到StudentNo字段時,索引才會被啟用。

       如:     select * from Student where StudentNo = 1000;      #使用到了StudentNo字段,索引被啟用。

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

        如:explain select * from Student where StudentNo = 1000;

 

5、選擇唯一性索引

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

 

6、盡量使用數據量少的索引

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

 

7、盡量使用前綴來索引

     如果索引字段的值很長,最好使用值的前綴來索引。例如,TEXT和BLOG類型的字段,進行全文檢索會很浪費時間。如果只檢索字段的前面的若干個字符,這樣可以提高檢索速度。

 

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

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

 

PS:部分內容借鑒與https://blog.csdn.net/csdnones/article/details/50412603


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM