天天看點

sql語句優化

SQL語句優化:

通過慢查詢日志發現有效率問題的sql.

可以通過開啟慢查詢日志的方式進行定位有問題的sql.

1. 檢視mysql是否開啟慢查詢日志

show variables like 'slow_query_log';

2.設定沒有索引的記錄到慢查詢日志

set global log_queries_not_using_indexes=on;

3.檢視超過多長時間的sql進行記錄到慢查詢日志

show variables like 'long_query_time';

4.開啟慢查詢日志

set global slow_query_log=on;

5.設定逾時時間

set global long_query_time=5;超過5秒的語句才記錄日志

set global long_query_time=5;

6.檢視慢查詢日志的位置

show variables like ='slow%';

檢視: show variables

設定: set global

慢查詢日志内容分析:

主要有五部分:

- 慢查詢的時間

- 慢查詢的來源主機和使用者

- 查詢的執行時間、鎖定時間、發送的行數、掃描的行數

- 時間戳形式記錄的指令

- 該指令的執行時間戳

系統運作一段時間後,慢查詢日志可能比較多,可以通過其他一些工具來分析。

對sql語句優化:

- 能分開寫的語句就分開寫,不要一次性就解決,這樣對效率來說是很大的開銷的。

- 避免使用不相容的資料類型,如float和int,char和varchar.

- 盡量避免在where字句中對字段進行函數或表達式操作。

- 避免使用is not null、in等一些無法讓系統使用索引操作的詞。

- 合理使用exists,not exists字句。