設計索引的原則:
搜索的索引列,不一定是所要選擇的列。最適合索引的列是出現在where子句中的列,或連接子句中指定的列,而不是出現在select關鍵字后的列表中的列。使用唯一索引.考慮到某列中的值分布,索引的列基礎越大,索引的效果越好。比如存放出生日期的列具有各不相同的值,很容易區分,但是記錄性別的列,只含有男和女對此類進行索引沒有多大好處使用短檢索。如果對字符串進行檢索,應該指定一個前綴長度。例如:一個CHAR(200)列,如果前10個或20個字符內,多數值是唯一的,那么就不要對整個列進行檢索。對前10個或20個字符進行檢索能夠節省大量索引空間,是查詢更快。利用最左前綴。在創建一個n列索引時,實際是創建了MySQL可利用的n個索引。多列索引可起幾個索引的作用,因為可利用索引最左邊的列級來匹配。不要過度索引。每個索引都是占用額外的磁盤空間,并降低寫操作的性能。在修改表內容的時候,索引必須進行相應的更新,有時候需要重構。如果有一個索引很少被用到,那么會不必要的減緩表的修改速度。此外,mysql在生成一個執行計劃時,要考慮各個索引,這也要花費時間。創建多余的索引給查詢優化帶來了更多的工作對于Innodb,記錄默認會按照一定的順序排序,如果有明確的定義主鍵,則按照主鍵排序順序保存。新聞熱點
疑難解答