mysql索引類型以及適用場景

1.普通索引
最基本的索引,沒有任何限制
2.唯一索引
索引列的值必須唯一,但允許有空值
3.主鍵索引
主鍵索引屬於一種特殊的唯一索引,不允許有空值
4.單列索引
單個多列索引(組合索引)效率高於多個單列索引
5.最左前綴(Leftmost Prefixing):多列索引
多列索引只有在where條件中含有索引中的首列字段時纔有效
例如:fname_lname_age索引,
以下的搜索條件MySQL都將使用 :
fname_lname_age索引:firstname,lastname,age;firstname,lastname;firstname,其他情況將不使用

二、根據sql查詢語句確定創建哪種類型的索引,如何優化查詢
選擇索引列:
  a.性能優化過程中,選擇在哪個列上創建索引是最重要的步驟之一。可以考慮使用索引的主要有
  兩種類型的列:在where子句中出現的列,在join子句中出現的列。
  b.考慮列中值的分佈,索引的列的基數越大,索引的效果越好。
  c.使用短索引,如果對字符串列進行索引,應該指定一個前綴長度,可節省大量索引空間,提升查詢速度。
  d.利用最左前綴
  e.不要過度索引,只保持所需的索引。每個額外的索引都要佔用額外的磁盤空間,並降低寫操作的性能。
  在修改表的內容時,索引必須進行更新,有時可能需要重構,因此,索引越多,所花的時間越長。
  MySQL只對一下操作符才使用索引:<,<=,=,>,>=,between,in, 以及某些時候的like(不以通配符%或_開頭的情形)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章