十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
我們先來看下面試題:
面試題:如何判斷SQL查詢操作是不是慢sql、如何優(yōu)化(阿里面試題)
面試題:MySQL慢查詢開啟,語句分析(阿里面試題)
(學習視頻分享:java教學視頻)
一、開啟mysql慢查詢
方式一:修改配置文件
在 my.ini 增加幾行:
[mysqlld] //定義查過多少秒的查詢算是慢查詢,我這里定義的是2秒 long_query_time=2 #5.0、5.1等版本配置如下選項 log-slow-queries="mysql_slow_query.log" #5.5及以上版本配置如下選項 slow-query-log=On slow_query_log_file="mysql_slow_query.log" //記錄下沒有使用索引的query log-query-not-using-indexes
(相關學習視頻分享:java面試題及答案)
方式二:通過MySQL數(shù)據(jù)庫開啟慢查詢
mysql>set global slow_query_log=ON mysql>set global long_query_time = 3600; mysql>set global log_querise_not_using_indexes = ON;
二、執(zhí)行一次慢查詢操作
其實想要執(zhí)行一次有實際意義的慢查詢比較困難,因為在自己測試的時候,就算查詢有20萬條數(shù)據(jù)的海量表,也只需要0.幾秒。我們可以通過如下語句代替:
SELECT SLEEP(10);
三、查看慢查詢的數(shù)量
通過如下sql語句,來查看一共執(zhí)行過幾次慢查詢:
show global status like '%slow%';
四、分析慢查詢?nèi)罩?/p>
方式一:通過工具分析
MySQL自帶了mysqldumpslow工具用來分析slow query日志,除此之外,還有一些好用的開源工具。
這里假設保存的日志名為long.log
列出記錄次數(shù)最多的10個sql語句:
mysqldumpslow -s c -t 10 long.log
列出返回記錄集最多的10個sql語句:
mysqldumpslow -s r -t 10 long.log
方式二:直接分析mysql慢查詢?nèi)罩?/p>
# Time: 121017 17:38:54 # User@Host: root[root] @ localhost [127.0.0.1] # Query_time: 3.794217 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 4194304 SET timestamp=1350466734; select * from wei where text='orange'; # Time: 121017 17:46:22 # User@Host: root[root] @ localhost [127.0.0.1] # Query_time: 3.819219 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 4194304 SET timestamp=1350467182; select * from wei where text='long';
相關推薦:java入門教程
當前文章:java面試——慢查詢
瀏覽路徑:http://m.jiaotiyi.com/article/cjgeji.html