1、較頻繁地作為查詢條件的字段
這個都知道。什麼是教頻繁呢?分析你執行的所有sql語句。最好將他們乙個個都列出來。然後分析,發現其中有些欄位在大部分的sql語句查詢時候都會用到,那麼就果斷為他建立索引。
2、唯一性太差的字段不適合建立索引
什麼是唯一性太差的字段。如狀態字段、型別字段。那些只儲存固定幾個值的字段,例如使用者登入狀態、訊息的status等。這個涉及到了索引掃瞄的特性。例如:通過索引查詢鍵值為a和b的某些資料,通過a找到某條相符合的資料,這條資料在x頁上面,然後繼續掃瞄,又發現符合a的資料出現在了y頁上面,那麼儲存引擎就會丟棄x頁面的資料,然後儲存y頁面上的資料,一直到查詢完所有對應a的資料,然後查詢b欄位,發現x頁面上面又有對應b欄位的資料,那麼他就會再次掃瞄x頁面,等於x頁面就會被掃瞄2次甚至多次。以此類推,所以同乙個資料頁可能會被多次重複的讀取,丟棄,在讀取,這無疑給儲存引擎極大地增加了io的負擔。
3、更新太頻繁地字段不適合建立索引
當你為這個字段建立索引時候,當你再次更新這個字段資料時,資料庫會自動更新他的索引,所以當這個字段更新太頻繁地時候那麼就是不斷的更新索引,效能的影響可想而知。大概被檢索幾十次會更新一次的字段才比較符合建立索引的規範。而如果乙個字段同乙個時間段內被更新多次,那麼果斷不能為他建立索引。
4.不會出現在where條件中的不應該建立索引
如何正確合理的建立MYSQL資料庫索引
普通 mysql 執行,資料量和訪問量不大的話,是足夠快的,但是當資料量和訪問量劇增的時候,那麼就會明顯發現 mysql 很慢,甚至 down 掉,那麼就要考慮優化我們的 mysql 了。其中優化 mysql 的乙個重要環節就是為資料庫建立正確合理的索引。如果沒有索引,執行查詢時mysql必須從第乙...
如何正確合理的建立MYSQL資料庫索引
普通mysql執行,資料量和訪問量不大的話,是足夠快的,但是當資料量和訪問量劇增的時候,那麼就會明顯發現mysql很慢,甚至down掉,那麼就要考慮優化我們的mysql了。其中優化mysql的乙個重要環節就是為資料庫建立正確合理的索引。如果沒有索引,執行查詢時mysql必須從第乙個記錄開始掃瞄整個表...
怎樣正確建立MySQL索引的方法詳解
索引類似大學圖書館建書目索引,可以提高資料檢索的效率,降低資料庫的io成本。mysql在300萬條記錄左右效能開始逐漸下降,雖然官方文件說500 800w記錄,所以大資料量建立索引是非常有必要的。mysql提供了explain,用於顯示sql執行的詳細資訊,可以進行索引的優化。什麼是索引?mysql...