1. 程式人生 > >mysql慢sql優化

mysql慢sql優化

失效 () 建立索引 table 獲取 全表掃描 sel sql查詢 一個

影響sql查詢慢的因素

1、沒有索引或則無效索引導致的全表掃描。
2、表的數據量和關聯的表數量。

致索引無效的情況

1、表關聯查詢時,字段類型或長度不一致。如:varchar(10)和varchar(20)
2、查詢參數的數據類型與索引字段類型不一致。如int = ‘1313‘
3、in () 索引字段in查詢時,通常是有效的。但是當in中指定的數據太多,優化器認為全表掃描更快時,也不會使用索引。
4、其他如:like、索引上使用函數等使索引失效。

sql的執行順序

from>join>on>where>group by>avg/sum>having>select>distinct>order by > limit

優化過程

優化的重點:使sql每一步篩選的數據更少,更快。
1、通過explain sql獲取的信息:
第一個執行查詢的表;索引的使用情況;每張表掃描到的數據條數;

2、通過select count(distinct cl)/count(1) from table,來查詢關鍵查詢字段的選擇性。越大說明選擇性越高,這種字段就應該優先建立索引。

3、analyze table 根據情況,分析table使其索引重建或則分布更加均衡。

4、如果查詢優化後,反應出來的數據仍然很多,查詢很慢。這時就應該根據業務來調整查詢條件。

mysql慢sql優化