摘要:優化的一般步驟通過了解各種的執行頻率定位執行效率低的語句通過分析效率低的通過分析通過分析優化器如何選擇執行計劃確定問題,采取措施優化索引優化措施中使用索引的典型場景匹配全值,條件所有列都在索引中而且是等值匹配匹配值的范圍查找,字段必須在索引
優化sql的一般步驟
通過show status了解各種sql的執行頻率
定位執行效率低的sql語句
通過explain分析效率低的sql
通過show profile分析sql
通過trace分析優化器如何選擇執行計劃
確定問題,采取措施優化
索引優化措施
mysql中使用索引的典型場景
匹配全值,條件所有列都在索引中而且是等值匹配
匹配值的范圍查找,字段必須在索引中
匹配最左前綴,復合索引只會根據最左列進行查找
僅僅對索引進行查詢,即查詢的所有字段都在索引上
匹配列前綴,比如like "ABC%",如果是like "%aaa"就不可以
如果列名是索引,使用column is null會使用索引
存在索引但不會使用索引的典型場景
以%開頭的like查詢不能使用b樹索引
數據類型出現隱式轉換不能使用索引
復合索引,查詢條件不符合最左列原則
用or分割的條件,如果前面的條件有索引,而后面的條件沒有索引
查看索引使用的情況
show status like "Handler_read%";
如果Handler_read_rnd_next的值比較高,說明索引不正確或者查詢沒有使用到索引
簡單實用的優化方法定期檢查表和分析表
分析表語法:
analyze table 表名;
檢查表語法:
check table 表名;
定期優化表
對于字節大小不固定的字段,數據更新和刪除會造成磁盤空間不釋放,這時候就行優化表,可以整理磁盤碎片,提高性能
語法如下:
optimize table user(表名);
如果文章對你有幫助,請去我的博客留個言吧! 我的博客
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/17531.html
閱讀 1361·2019-08-30 15:55
閱讀 1652·2019-08-26 10:21
閱讀 3442·2019-08-23 18:28
閱讀 3380·2019-08-23 15:38
閱讀 748·2019-08-23 15:24
閱讀 2142·2019-08-23 13:59
閱讀 780·2019-08-23 11:31
閱讀 2874·2019-08-23 10:53