MySql定位執行效率較低的SQL語句
MySql定位執行效率較低的SQL語句:
MySQL能夠記錄執行時間超過引數 long_query_time 設定值的SQL語句,預設是不記錄的。
獲得初始鎖定的時間不算作執行時間。mysqld在SQL執行完和所有的鎖都被釋放後才寫入日誌。且記錄順序可能不同於執行順序。
5.1.6以前mysql使用--log-slow-queries[=file_name]來開啟記錄慢的SQL。
MySQL 5.1.6:日誌可以記錄在檔案或是表中,由引數e --log-output來指定日誌的目標型別。
MySQL5.1.12: 使用 --slow_query_log[={0|1}]代替log-slow-queries,一個預設日誌檔案被使用
MySQL5.1.29: 使用slow_query_log[={0|1}]控制日誌啟用,slow_query_log_file=file_name指定日誌檔案。log-slow-queries引數棄用。
預設:管理語句和沒有使用index的查詢將不記錄。可以通過 --log-slow-admin-statements 和 log_queries_not_using_indexes來設定是否記錄。
管理語句包括: ALTER TABLE, ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP INDEX, OPTIMIZE TABLE, REPAIR TABLE.
如果設定了log_queries_not_using_indexes,可能引起日誌檔案快速增長,可以考慮使用引數log_throttle_queries_not_using_indexes 設定每分鐘記錄能夠記錄的數量。
預設:一個複製從庫不會記錄複製查詢的日誌。為了改變這個,可以使用引數--log-slow-slave-statements
直接檢視慢查詢日誌檔案是一項艱鉅的任務,我們可以使用mysqldumpslow工具來輔助。 見Section 4.6.8, “mysqldumpslow — Summarize Slow Query Log Files”.
另外:慢查詢日誌是在查詢結束後才記錄,故正在執行的慢SQL並不能被定位到,可以使用show processlist命令檢視當前MySQL在進行的執行緒,包括執行緒的狀態、是否鎖表等等,可以實時地檢視SQL的執行情況。
參考:
http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html
http://dev.mysql.com/doc/refman/5.6/en/slow-query-log.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/195110/viewspace-1082666/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MYSQL 中 exists 語句執行效率變低MySql
- 快速定位sql語句執行內容SQL
- mysql的sql語句執行流程MySql
- mysql執行sql語句過程MySql
- mysql如何跟蹤執行的sql語句MySql
- 檢視mysql正在執行的SQL語句MySql
- mysql查詢效率慢的SQL語句MySql
- MySQL cron定時執行SQL語句MySql
- sql server中如何檢視執行效率不高的語句SQLServer
- 在mysql查詢效率慢的SQL語句MySql
- mysql sql語句執行超時設定MySql
- php連線mysql並執行sql語句PHPMySql
- sql語句如何執行的SQL
- 執行大的sql語句SQL
- 【SQL】Oracle sql語句 minus函式執行效率與join對比SQLOracle函式
- 一條SQL語句在MySQL中如何執行的MySql
- sql語句批量執行SQL
- Oracle中SQL語句執行效率的查詢與解決 (3)OracleSQL
- Oracle中SQL語句執行效率的查詢與解決 (2)OracleSQL
- Oracle中SQL語句執行效率的查詢與解決 (1)OracleSQL
- SQL 語句的執行順序SQL
- 一條sql語句在mysql中是如何執行的MySql
- 一條 SQL 語句在 MySQL 中是如何執行的?MySql
- mySQL 執行語句執行順序MySql
- oracle使用profiler分析語句執行效率Oracle
- Oracle中SQL語句執行效率問題的查詢與解決OracleSQL
- 查詢正在執行的sql語句及該語句執行的時間SQL
- mysql 語句的執行順序MySql
- SQL語句執行順序SQL
- toad執行sql語句SQL
- SQL Server SQL語句執行順序SQLServer
- 通過分析SQL語句的執行計劃優化SQL語句SQL優化
- Laravel 獲取執行的sql語句LaravelSQL
- 查詢執行慢的SQL語句SQL
- CoreData執行過程的sql語句SQL
- 識別低效執行的SQL語句SQL
- 剖析SQL語句的執行過程SQL
- Oracle SQL 語句的執行過程OracleSQL