首頁 >Java >Java面試題 >java面試——慢查詢

java面試——慢查詢

王林
王林轉載
2020-11-20 15:24:3910103瀏覽

java面試——慢查詢

我們先來看下面試題:

面試題:如何判斷SQL查詢運算不是慢sql、如何最佳化(阿里面試題)

#面試題: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資料庫開啟慢查詢

mysql>set global slow_query_log=ON
mysql>set global long_query_time = 3600;
mysql>set global log_querise_not_using_indexes = ON;

二、執行一次慢查詢操作

其實想要執行一次有實際意義的慢查詢比較困難,因為在自己測試的時候,就算查詢有20萬個資料的海量表,也只需要0.幾秒。我們可以透過如下語句取代:

SELECT SLEEP(10);

三、查看慢查詢的數量
透過如下sql語句,來查看一共執行過幾次慢查詢:

show global status like '%slow%';

四、分析慢查詢日誌

方式一:透過工具分析

MySQL自帶了mysqldumpslow工具用來分析slow query日誌,除此之外,還有一些好用的開源工具。

這裡假設已儲存的日誌名稱為long.log

列出記錄次數最多的10個sql語句:

mysqldumpslow -s c -t 10 long.log

列出回傳記錄集最多的10個sql語句:

mysqldumpslow -s r -t 10 long.log

方式二:直接分析mysql慢查詢日誌

# 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面試——慢查詢的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除