最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

簡(jiǎn)介

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

一、配置慢查詢(xún)

1、參數(shù)說(shuō)明

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

2.查看慢查詢(xún)相關(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.配置慢查詢(xún) 

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

(1)全局變量配置 

--將 slow_query_log 全局變量設(shè)置為“ON”狀態(tài)
  set global slow_query_log='ON'; 

--設(shè)置慢查詢(xún)?nèi)罩敬娣诺奈恢?
 set global slow_query_log_file='/usr/local/mysql/data/slow.log';

--查詢(xún)超過(guò)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ò)全局變量配置好后,需要關(guān)閉會(huì)話后重新打開(kāi)查詢(xún)才有效,通過(guò)配置文件需要重啟Mysql服務(wù)器后才有效
(2) 因?yàn)殚_(kāi)啟慢查詢(xún)會(huì)影響性能,一般建議通過(guò)全局變量配置,這樣重啟服務(wù)器又是默認(rèn)關(guān)閉慢查詢(xún)狀態(tài)。

二、mysqldumpslow工具

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

1、主要命令

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

2、舉例

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

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

 --3.得到按照時(shí)間排序的前10條里面含有做鏈接的查詢(xún)語(yǔ)句
  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、開(kāi)啟 show profile

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

--開(kāi)啟
set profiling=1;

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

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

show profiles;--會(huì)列出所有在這個(gè)開(kāi)啟期間執(zhí)行的SQL,并附上QUERY ID
+----------+------------+----------------------------+
| Query_ID | Duration  | Query           |
+----------+------------+----------------------------+
|    1 | 0.00168025 | select * from vhr.employee |
|    2 | 0.06573200 | select * from vhr.hr    |
+----------+------------+----------------------------+
--我們可以看到顯示最近操作的兩條語(yǔ)句,列表大小由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;--查詢(xún)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 |
+----------------------+----------+----------+------------+

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

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

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

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

相關(guān)文章

  • MySQL 使用SQL語(yǔ)句修改表名的實(shí)現(xiàn)

    MySQL 使用SQL語(yǔ)句修改表名的實(shí)現(xiàn)

    這篇文章主要介紹了MySQL 使用SQL語(yǔ)句修改表名的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • mysql 5.7.21 winx64安裝配置方法圖文教程

    mysql 5.7.21 winx64安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 5.7.21 winx64安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • MySQL中常用的一些日期和時(shí)間函數(shù)

    MySQL中常用的一些日期和時(shí)間函數(shù)

    MySQL日期和時(shí)間函數(shù)是MySQL中的一個(gè)重要組件,它提供了一些有用的函數(shù)來(lái)處理日期和時(shí)間數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于MySQL中常用的一些日期和時(shí)間函數(shù),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • MySQL如何創(chuàng)建視圖

    MySQL如何創(chuàng)建視圖

    這篇文章主要介紹了MySQL如何創(chuàng)建視圖,幫助大家更好的理解和學(xué)習(xí)MySQL,感興趣的朋友可以了解下
    2020-08-08
  • mysql表的內(nèi)連和外連實(shí)戰(zhàn)記錄

    mysql表的內(nèi)連和外連實(shí)戰(zhàn)記錄

    在開(kāi)發(fā)中我們的業(yè)務(wù)需求有時(shí)候是復(fù)雜的,多張表聯(lián)合查詢(xún)的時(shí)候是有多種方式的,面對(duì)不同的需求,靈活使用不同的表連接方式,這篇文章主要給大家介紹了關(guān)于mysql表內(nèi)連和外連的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • mysql server 5.7.20 安裝配置方法圖文教程

    mysql server 5.7.20 安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql server 5.7.20 安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 利用explain排查分析慢sql的實(shí)戰(zhàn)案例

    利用explain排查分析慢sql的實(shí)戰(zhàn)案例

    在日常工作中,我們會(huì)有時(shí)會(huì)開(kāi)慢查詢(xún)?nèi)ビ涗浺恍﹫?zhí)行時(shí)間比較久的SQL語(yǔ)句,下面這篇文章主要給大家介紹了關(guān)于利用explan排查分析慢sql的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • 一文徹底搞清楚MySQL的主鍵、外鍵、約束和各種索引

    一文徹底搞清楚MySQL的主鍵、外鍵、約束和各種索引

    主鍵用于唯一標(biāo)識(shí)表中每一行數(shù)據(jù),外鍵用于建立表與表之間關(guān)聯(lián)關(guān)系,約束用于限制表中數(shù)據(jù)的規(guī)則,索引用于加速查詢(xún),本文就將帶大家底搞清楚MySQL的主鍵、外鍵、約束和各種索引,感興趣的小伙伴可以跟著小編一起來(lái)學(xué)習(xí)
    2023-06-06
  • mysql數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)點(diǎn)與操作小結(jié)

    mysql數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)點(diǎn)與操作小結(jié)

    這篇文章主要介紹了mysql數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)點(diǎn)與操作,總結(jié)分析了mysql數(shù)據(jù)庫(kù)修改數(shù)據(jù)表、增刪改查及數(shù)據(jù)庫(kù)函數(shù)基本功能,需要的朋友可以參考下
    2020-01-01
  • MySQL5.1忘記root密碼的解決辦法(親測(cè))

    MySQL5.1忘記root密碼的解決辦法(親測(cè))

    這篇文章主要介紹了MySQL5.1忘記root密碼的解決辦法(親測(cè))的相關(guān)資料,需要的朋友可以參考下
    2016-01-01

最新評(píng)論

宝兴县| 新乐市| 甘洛县| 象山县| 花垣县| 鹰潭市| 新郑市| 城固县| 宁乡县| 永城市| 湘阴县| 博爱县| 德昌县| 来凤县| 剑阁县| 阿拉善左旗| 开鲁县| 高清| 莎车县| 全椒县| 康平县| 蓝田县| 那坡县| 惠州市| 临漳县| 台南市| 湾仔区| 黄龙县| 芦山县| 萝北县| 法库县| 武汉市| 南城县| 文水县| 洛阳市| 麟游县| 苏尼特左旗| 镇安县| 孝昌县| 图们市| 五台县|