分析MySQL語句查詢性能的方法除了使用EXPLAIN輸出執(zhí)行計(jì)劃,還可以讓MySQL記錄下查詢超過指定時(shí)間的語句,我們將超過指定時(shí)間的SQL語句查詢稱為“慢查詢”。
MySQL慢查詢就是在日志中記錄運(yùn)行比較慢的SQL語句,這個(gè)功能需要開啟才能用。
在MySQL的配置文件my.cnf中寫上:
long_query_time = 10 log-slow-queries = /var/lib/mysql/mysql-slow.log
long_query_time是指執(zhí)行超過多久的SQL會(huì)被日志記錄下來,這里是10 秒。
log-slow-queries設(shè)置把日志寫在那里(例子中慢查詢?nèi)罩緯?huì)寫到文件/var/lib/mysql/mysql-slow.log中),為空的時(shí)候,系統(tǒng)會(huì)給慢查詢?nèi)罩举x予主機(jī)名,并加上slow.log。如果設(shè)置了參數(shù)log-long-format ,那么所有沒有使用索引的查詢也將被記錄。
這是一個(gè)非常有用的日志。它對于性能的影響不大(假設(shè)所有查詢都很快),并且強(qiáng)調(diào)了那些最需要注意的查詢(丟失了索引或索引沒有得到最佳應(yīng)用)。
推薦教程: 《mysql教程》