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

java面試——慢查詢

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

java面試——慢查詢

我們先來看下面試題:

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

#面試題:MySQL慢查詢開啟,語句分析(阿里面試題)

(學習影片分享:java教學影片

一、開啟mysql慢查詢

方式一:修改設定檔

在my.ini 增加幾行:

1

2

3

4

5

6

7

8

9

10

11

12

[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資料庫開啟慢查詢

1

2

3

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.幾秒。我們可以透過如下語句取代:

1

SELECT SLEEP(10);

登入後複製

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

1

show global status like '%slow%';

登入後複製

四、分析慢查詢日誌

方式一:透過工具分析

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

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

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

1

mysqldumpslow -s c -t 10 long.log

登入後複製

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

1

mysqldumpslow -s r -t 10 long.log

登入後複製

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

1

2

3

4

5

6

7

8

9

10

# 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中文網其他相關文章!

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
java可以做為web的後端嗎?
來自於 1970-01-01 08:00:00
0
0
0
安裝JAVA
來自於 1970-01-01 08:00:00
0
0
0
無法安裝java
來自於 1970-01-01 08:00:00
0
0
0
求救:JAVA加密的資料PHP解密
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板