五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動(dòng)態(tài)

實(shí)例講解MySQL 慢查詢

發(fā)布日期:2022-02-22 19:21 | 文章來源:CSDN

簡介

開啟慢查詢?nèi)罩?,可以讓MySQL記錄下查詢超過指定時(shí)間的語句,通過定位分析性能的瓶頸,才能更好的優(yōu)化數(shù)據(jù)庫系統(tǒng)的性能。

一、配置慢查詢

1、參數(shù)說明

  • slow_query_log: 慢查詢開啟狀態(tài)(默認(rèn)關(guān)閉)
  • slow_query_log_file: 慢查詢?nèi)罩敬娣诺奈恢茫ㄟ@個(gè)目錄需要MySQL的運(yùn)行帳號(hào)的可寫權(quán)限, 一般設(shè)置為MySQL的數(shù)據(jù)存放目錄)
  • long_query_time: 查詢超過多少秒才記錄(默認(rèn)10秒)

2.查看慢查詢相關(guān)參數(shù)

show variables like 'slow_query%';
+---------------------------+----------------------------------+
| Variable_name       | Value              |
+---------------------------+----------------------------------+
| slow_query_log      | OFF               |
| slow_query_log_file    | /mysql/data/localhost-slow.log  |
+---------------------------+----------------------------------+
show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name  | Value   |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+

3.配置慢查詢

它有兩種配置方式,一種是全局變量配置,一種是配置文件配置

(1)全局變量配置

--將 slow_query_log 全局變量設(shè)置為“ON”狀態(tài)
  set global slow_query_log='ON'; 
--設(shè)置慢查詢?nèi)罩敬娣诺奈恢? set global slow_query_log_file='/usr/local/mysql/data/slow.log';
--查詢超過1秒就記錄
  set global long_query_time=1;

(2)修改配置文件my.cnf(linux環(huán)境下)

  slow_query_log = ON
  slow_query_log_file = /usr/local/mysql/data/slow.log
  long_query_time = 1

總結(jié):
(1)通過全局變量配置好后,需要關(guān)閉會(huì)話后重新打開查詢才有效,通過配置文件需要重啟Mysql服務(wù)器后才有效
(2) 因?yàn)殚_啟慢查詢會(huì)影響性能,一般建議通過全局變量配置,這樣重啟服務(wù)器又是默認(rèn)關(guān)閉慢查詢狀態(tài)。

二、mysqldumpslow工具

mysqldumpslow是Mysql自帶的一個(gè)工具,有了它我們可以不用去上面的log文件去找,如果數(shù)據(jù)平凡操作,那么去log查下日志也是比較繁瑣的一件事。

1、主要命令

--s:是表示按照何種方式排序 
  --c:訪問次數(shù) 
  --l:鎖定時(shí)間 
  --r:返回記錄 
  --t:查詢時(shí)間 
  --al:平均鎖定時(shí)間 
  --ar:平均返回記錄數(shù) 
  --at:平均查詢時(shí)間 
  --t:即為返回前面多少條的數(shù)據(jù) 
  --g:后面搭配一個(gè)正則匹配模式,大小寫不敏感

2、舉例

--1.得到返回記錄集最多的10個(gè)SQL
  mysqldumpslow -s -r -t 10 /logs/mysql-slow.log
 --2.得到訪問次數(shù)最多的10個(gè)SQL
  mysqldumpslow -s -c -t 10 /logs/mysql-slow.log
 --3.得到按照時(shí)間排序的前10條里面含有做鏈接的查詢語句
  mysqldumpslow -s t -t 10 -g "left join" /logs/mysql-slow.log
 
 --4.另外建議在使用這些命令時(shí)結(jié)合|和more使用,否則又可能出現(xiàn)爆屏情況
  mysqldumpslow -s r -t 10 /logs/mysql-slow.log | more

三、show profile

Show profiles是5.0.37之后添加的,要想使用此功能,要確保版本在5.0.37之后。

1、開啟 show profile

show variables like "profiling";--默認(rèn)是關(guān)閉的
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| profiling   | OFF  |
+---------------+-------+
--開啟
set profiling=1;

2、運(yùn)行指定SQL

我這里運(yùn)行幾條SQL語句,然后運(yùn)行

show profiles;--會(huì)列出所有在這個(gè)開啟期間執(zhí)行的SQL,并附上QUERY ID
+----------+------------+----------------------------+
| Query_ID | Duration  | Query           |
+----------+------------+----------------------------+
|    1 | 0.00168025 | select * from vhr.employee |
|    2 | 0.06573200 | select * from vhr.hr    |
+----------+------------+----------------------------+
--我們可以看到顯示最近操作的兩條語句,列表大小由profiling_history_size會(huì)話變量控制, 默認(rèn)值為15.最大值為100

3、診斷具體SQL

show profile cpu,block io for queryid --對(duì)應(yīng)2中的query_id
SHOW PROFILE CPU FOR QUERY 1;--查詢query_id為1的具體信息
+----------------------+----------+----------+------------+
| Status        | Duration | CPU_user | CPU_system |
+----------------------+----------+----------+------------+
| starting       | 0.000194 | 0.000000 |  0.000000 |
| checking permissions | 0.000012 | 0.000000 |  0.000000 |
| Opening tables    | 0.000030 | 0.000000 |  0.000000 |
| init         | 0.000053 | 0.000000 |  0.000000 |
| System lock     | 0.000011 | 0.000000 |  0.000000 |
| optimizing      | 0.000003 | 0.000000 |  0.000000 |
| statistics      | 0.000014 | 0.000000 |  0.000000 |
| preparing      | 0.000010 | 0.000000 |  0.000000 |
| executing      | 0.000001 | 0.000000 |  0.000000 |
| Sending data     | 0.001213 | 0.000000 |  0.000000 |
| end         | 0.000014 | 0.000000 |  0.000000 |
| query end      | 0.000012 | 0.000000 |  0.000000 |
| closing tables    | 0.000019 | 0.000000 |  0.000000 |
| freeing items    | 0.000070 | 0.000000 |  0.000000 |
| cleaning up     | 0.000025 | 0.000000 |  0.000000 |
+----------------------+----------+----------+------------+

日常開發(fā)需要注意的結(jié)論:

1 converting HEAP to MyISAM : 查詢結(jié)果太大,內(nèi)存都不夠用了,往磁盤上搬了;
2 creating tmp table : 創(chuàng)建臨時(shí)表,拷貝數(shù)據(jù)到臨時(shí)表,然后再刪除;
3 copying to tmp table on disk :把內(nèi)存中臨時(shí)表復(fù)制到磁盤,危險(xiǎn)?。?!
4 locked

注:以上四個(gè)中若出現(xiàn)一個(gè)或多個(gè),表示sql 語句 必須優(yōu)化。

以上就是實(shí)例講解MySQL 慢查詢的詳細(xì)內(nèi)容,更多關(guān)于MySQL 慢查詢的資料請(qǐng)關(guān)注本站其它相關(guān)文章!

美國服務(wù)器租用

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部