1、索引要建立在經常進行select操作的字段上。這是因為,如果這些列很少用到,那麼有無索引並不能明顯改變查詢速度。相反,由於增加了索引,反而降低了系統的維護速度和增大了空間需求。
2、索引要建立在值比較唯一的字段上。這樣做才是發揮索引的最大效果。,比如主鍵的id欄位,唯一的名字name欄位等等。如果索引建立在唯一值比較少的字段,比如性別gender欄位,寥寥無幾的類別欄位等,剛索引幾乎沒有任何意義
3、當修改效能遠遠大於檢索效能時,不應該建立索引。修改效能和檢索效能是互相矛盾的。當增加索引時,會提高檢索效能,但是會降低修改效能。當減少索引時,會提高修改效能,降低檢索效能。因此,當修改效能遠遠大於檢索效能時,不應該建立索引。
4、在where和join中出現的列需要建立索引。
5、在以萬用字元 % 和 _ 開頭作查詢時,mysql索引是無效的。但是這樣索引是有效的:select * from table where name like '***%',所以謹慎的寫你的sql是很重要的。
6、對於那些定義為text、 image和bit資料型別的列不應該增加索引。因為這些列的資料量要麼相當大,要麼取值很少。
最左匹配原則:知乎這個大神寫的很通俗易懂
資料庫建立索引的條件和注意事項
資料庫中建立索引是為了提公升查詢效能,但是建立索引也會降低修改效能。建立索引也有不利的一面 建立索引和維護索引要耗費時間,耗費的時間隨著資料量的增加而增加 索引佔據物理空間。除了資料表佔據物理空間以外,每乙個索引都會佔據一定的物理空間。如果建立聚簇索引,那麼需要的空間就會更大 如果非聚簇索引很多,一...
建立資料庫 mysql資料庫建立注意事項
mysql 想必大家都不會陌生吧 是我學習中第乙個接觸的的資料庫 已學習就很快上手的 這是乙個關係型資料庫 不懂什麼是關係型資料庫 啊哈哈哈 現在知道啦 因為自己學習了 非關係型資料庫 redis 關係型資料庫 顧名思義就是有關係啦 個人理解就是 乙個庫下的所有表 都可以產生關係 關係型資料庫是我們...
資料庫 優化 索引 索引的優化注意事項
設計好mysql的索引可以讓你的資料庫飛起來,大大的提高資料庫效率。設計mysql索引的時候有一下幾點注意 對於查詢佔主要的應用來說,索引顯得尤為重要。很多時候效能問題很簡單的就是因為我們忘了新增索引而造成的,或者說沒有新增更為有效的索引導致。如果不加索引的話,那麼查詢任何哪怕只是一條特定的資料都會...