1. 程式人生 > >mysql資料庫簡單優化措施

mysql資料庫簡單優化措施

優化sql的一般步驟

  1. 通過show status瞭解各種sql的執行頻率
  2. 定位執行效率低的sql語句
  3. 通過explain分析效率低的sql
  4. 通過show profile分析sql
  5. 通過trace分析優化器如何選擇執行計劃
  6. 確定問題,採取措施優化

索引優化措施

  1. mysql中使用索引的典型場景

    1. 匹配全值,條件所有列都在索引中而且是等值匹配
    2. 匹配值的範圍查詢,欄位必須在索引中
    3. 匹配最左字首,複合索引只會根據最左列進行查詢
    4. 僅僅對索引進行查詢,即查詢的所有欄位都在索引上
    5. 匹配列字首,比如like ‘ABC%’,如果是like ‘%aaa’就不可以
    6. 如果列名是索引,使用column is null會使用索引
  2. 存在索引但不會使用索引的典型場景

    1. 以%開頭的like查詢不能使用b樹索引
    2. 資料型別出現隱式轉換不能使用索引
    3. 複合索引,查詢條件不符合最左列原則
    4. 用or分割的條件,如果前面的條件有索引,而後面的條件沒有索引
  3. 檢視索引使用的情況

show status like 'Handler_read%';

如果Handler_read_rnd_next的值比較高,說明索引不正確或者查詢沒有使用到索引

簡單實用的優化方法

  1. 定期檢查表和分析表
    分析表語法:
analyze table 表名;

檢查表語法:

check table 表名;
  1. 定期優化表
    • 對於位元組大小不固定的欄位,資料更新和刪除會造成磁碟空間不釋放,這時候就行優化表,可以整理磁碟碎片,提高效能
      語法如下:
optimize table user(表名);

如果文章對你有幫助,請去我的部落格留個言吧! 我的部落格