欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

實例講解MySQL 慢查詢

 更新時間:2020年12月04日 11:11:01   作者:雨點的名字  
這篇文章主要介紹了MySQL 慢查詢的相關資料,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下

簡介

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

一、配置慢查詢

1、參數(shù)說明

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

2.查看慢查詢相關參數(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 全局變量設置為“ON”狀態(tài)
  set global slow_query_log='ON'; 

--設置慢查詢?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)通過全局變量配置好后,需要關閉會話后重新打開查詢才有效,通過配置文件需要重啟Mysql服務器后才有效
(2) 因為開啟慢查詢會影響性能,一般建議通過全局變量配置,這樣重啟服務器又是默認關閉慢查詢狀態(tài)。

二、mysqldumpslow工具

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

1、主要命令

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

2、舉例

--1.得到返回記錄集最多的10個SQL
  mysqldumpslow -s -r -t 10 /logs/mysql-slow.log

 --2.得到訪問次數(shù)最多的10個SQL
  mysqldumpslow -s -c -t 10 /logs/mysql-slow.log

 --3.得到按照時間排序的前10條里面含有做鏈接的查詢語句
  mysqldumpslow -s t -t 10 -g "left join" /logs/mysql-slow.log
 
 --4.另外建議在使用這些命令時結(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";--默認是關閉的
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| profiling   | OFF  |
+---------------+-------+

--開啟
set profiling=1;

2、運行指定SQL 

我這里運行幾條SQL語句,然后運行

show profiles;--會列出所有在這個開啟期間執(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會話變量控制, 默認值為15.最大值為100

3、診斷具體SQL

show profile cpu,block io for queryid --對應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ù)據(jù)到臨時表,然后再刪除;
    3   copying to tmp table on disk :把內(nèi)存中臨時表復制到磁盤,危險?。。?br />     4   locked

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

以上就是實例講解MySQL 慢查詢的詳細內(nèi)容,更多關于MySQL 慢查詢的資料請關注腳本之家其它相關文章!

相關文章

  • Mysql出現(xiàn)問題:error?while?loading?shared?libraries:?libaio解決方案

    Mysql出現(xiàn)問題:error?while?loading?shared?libraries:?libaio解

    這篇文章主要介紹了Mysql出現(xiàn)問題:error?while?loading?shared?libraries:?libaio解決方案的相關資料,需要的朋友可以參考下
    2022-10-10
  • MySQL修改tmpdir參數(shù)

    MySQL修改tmpdir參數(shù)

    本文給大家分享的是在linux系統(tǒng)下MySQL修改tmpdir參數(shù)解決tmpdir報錯的問題,有相同需求的小伙伴可以參考下
    2016-02-02
  • mysql中cast函數(shù)用法小結(jié)

    mysql中cast函數(shù)用法小結(jié)

    在MySQL中,CAST函數(shù)用于將一個表達式轉(zhuǎn)換為指定的數(shù)據(jù)類型,本文主要介紹了mysql中cast函數(shù)用法小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • mysql視圖之管理視圖實例詳解【增刪改查操作】

    mysql視圖之管理視圖實例詳解【增刪改查操作】

    這篇文章主要介紹了mysql視圖之管理視圖,結(jié)合實例形式詳細分析了mysql視圖增刪改查操作具體實現(xiàn)技巧與相關操作注意事項,需要的朋友可以參考下
    2019-12-12
  • MySQL啟動錯誤解決方法

    MySQL啟動錯誤解決方法

    本文給大家分享的是mysql啟動時報錯的排查過程及方法,非常實用,有相同問題的小伙伴可以來參考下
    2016-12-12
  • 搞定mysql行轉(zhuǎn)列的7種方法以及列轉(zhuǎn)行

    搞定mysql行轉(zhuǎn)列的7種方法以及列轉(zhuǎn)行

    在MySQL數(shù)據(jù)庫中,有時候我們需要將一列數(shù)據(jù)轉(zhuǎn)化為行數(shù)據(jù),以便更好地進行數(shù)據(jù)分析和處理,下面這篇文章主要給大家介紹了關于搞定mysql行轉(zhuǎn)列的7種方法以及列轉(zhuǎn)行的相關資料,需要的朋友可以參考下
    2024-03-03
  • MySql?字符集不同導致?left?join?慢查詢的問題解決

    MySql?字符集不同導致?left?join?慢查詢的問題解決

    當兩個表的字符集不一樣,在使用字符型字段進行表連接查詢時,就需要特別注意下查詢耗時是否符合預期,本文主要介紹了MySql?字符集不同導致?left?join?慢查詢的問題解決,感興趣的可以了解一下
    2024-05-05
  • MySQL的?DDL和DML和DQL的基本語法詳解

    MySQL的?DDL和DML和DQL的基本語法詳解

    SQL語句,即結(jié)構化查詢語言(Structured?Query?Language),是一種特殊目的的編程語言,是一種數(shù)據(jù)庫查詢和程序設計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關系數(shù)據(jù)庫系統(tǒng),這篇文章主要介紹了MySQL的?DDL和DML和DQL的基本語法,需要的朋友可以參考下
    2022-07-07
  • mysql如何變更自增主鍵id起始值

    mysql如何變更自增主鍵id起始值

    這篇文章主要介紹了mysql如何變更自增主鍵id起始值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Mysql中正則表達式Regexp常見用法

    Mysql中正則表達式Regexp常見用法

    這篇文章主要介紹了Mysql中正則表達式Regexp常見用法,MySql REGEXP運算符匹配字符串,mysql正則REGEXP學習練習筆記,需要的朋友可以參考下
    2020-02-02

最新評論