首頁 > Java > Java面試題 > 主體

java面試——慢查詢

王林
發布: 2020-11-20 15:24:39
轉載
9953 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!