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(不以通配符%或_開頭的情形)。
新聞熱點
疑難解答