mysql 索引的使用一直是工作中的重點,乙個線上專案如果不能合理使用索引,那帶來的危害可能是毀滅性的(資料庫鎖死、當機等)。
所以這一塊也是面試中的重點,那麼,mysql 建立索引的原則有哪些呢?
一般來說,在 mysql 中使用索引的原則有以下幾點:
索引的目的就是提公升查詢速度,這一點毋庸置疑。所以對於查詢頻率高的字段要建立索引,如:使用者表的手機號。
如:某個表(假設表名為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檢測索引是否被啟用,如:
附:explain列的解釋
唯一性索引的值是唯一的,可以更快速的通過該索引來確定某條記錄。例如,學生表中學號是具有唯一性的字段。為該字段建立唯一性索引可以很快的確定某個學生的資訊。如果使用姓名的話,可能存在同名現象,從而降低查詢速度。
如果索引的值很長,那麼查詢的速度會受到影響。例如,對乙個char(100)型別的字段進行全文檢索需要的時間肯定要比對char(10)型別的字段需要的時間要多。
如果索引欄位的值很長,最好使用值的字首來索引。例如,text和blog型別的字段,進行全文檢索會很浪費時間。如果只檢索欄位的前面的若干個字元,這樣可以提高檢索速度。
表中的資料被大量更新,或者資料的使用方式被改變後,原有的一些索引可能不再需要。資料庫管理員應當定期找出這些索引,將它們刪除,從而減少索引對更新操作的影響。
MySql 建立索引原則
為了使索引的使用效率更高,在建立索引時,必須考慮在哪些欄位上建立索引和建立什麼型別的索引。本小節將向讀者介紹一些索引的設計原則。1 選擇唯一性索引 唯一性索引的值是唯一的,可以更快速的通過該索引來確定某條記錄。例如,學生表中學號是具有唯一性的字段。為該字段建立唯一性索引可以很快的確定某個學生的資訊。...
Mysql索引建立原則
在mysql中使用索引的原則有以下幾點 1 對於查詢頻率高的字段建立索引 2 對排序 分組 聯合查詢頻率高的字段建立索引 3 索引的數目不宜太多 原因 a 每建立乙個索引都會占用相應的物理控制項 b 過多的索引會導致insert update delete語句的執行效率降低 4 若在實際中,需要將多...
MySQL索引建立原則
索引的目的是提公升查詢資料的效率,所以我們建索引的標準應該一切從提公升查詢效率為基準。對於有唯一值的列盡量使用唯一索引 索引長度盡量小一點,長度小的索引可以節省索引空間,也會使查詢的速度得到提公升,因為索引頁只有16k,索引列長度小的話,一頁可以容納更多的資料 太長的列可以選擇部分內容做索引,遵循最...