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

深入了解MySQL中的慢查詢?nèi)罩?/h1>
 更新時(shí)間:2023年03月17日 10:14:32   作者:跟著飛哥學(xué)編程  
什么是MySQL慢查詢呢?其實(shí)就是查詢的SQL語(yǔ)句耗費(fèi)較長(zhǎng)的時(shí)間。具體耗費(fèi)多久算慢查詢呢?這其實(shí)因人而異,有些公司慢查詢的閾值是100ms,有些的閾值可能是500ms。本文將通過(guò)示例和大家聊聊慢查詢的危害和常用場(chǎng)景,感興趣的可以了解一下

慢查詢?nèi)罩?/h2>

慢查詢?nèi)罩局饕脕?lái)記錄執(zhí)行時(shí)間超過(guò)設(shè)置的某個(gè)時(shí)長(zhǎng)的SQL語(yǔ)句,能夠幫助數(shù)據(jù)庫(kù)維護(hù)人員找出執(zhí)行時(shí)間比較長(zhǎng)、執(zhí)行效率比較低的SQL語(yǔ)句,并對(duì)這些SQL語(yǔ)句進(jìn)行針對(duì)性優(yōu)化。

開啟慢查詢

可以在 my.cnf 文件或者 my.ini 文件中配置開啟慢查詢?nèi)罩尽?/p>

[mysqld]
slow_query_log = 1
slow_query_log_file = /data/mysql/log/query_log/slow_statement.log
long_query_time = 10
log_output = FILE

各配置項(xiàng)說(shuō)明如下:

slow_query_log:指定是否開啟慢查詢?nèi)罩?。指定的值?或者不指定值都會(huì)開啟慢查詢?nèi)罩?;指定的值?0 或者 不配置此選項(xiàng)就不會(huì)開啟慢查詢?nèi)罩尽?/p>

slow_query_log_file:慢查詢?nèi)罩镜奈募恢谩?/p>

long_query_time:指定SQL語(yǔ)句執(zhí)行時(shí)間超過(guò)多少秒時(shí)記錄慢查詢?nèi)罩尽?/p>

log_output:與查詢?nèi)罩镜膌og_output選項(xiàng)相同,此處不再贅述。

注意:log_output 能夠配置將日志記錄到數(shù)據(jù)表中還是記錄到文件中,當(dāng)記錄到數(shù)據(jù)表中時(shí),則數(shù)據(jù)表中記錄的慢查詢時(shí)間只能精確到秒;如果是記錄到日志文件中,則日志文件中記錄的慢查詢時(shí)間能夠精確到微秒。建議在實(shí)際工作中,將慢查詢?nèi)罩居涗浀轿募小?/p>

配置完成后,重啟 MySQL 服務(wù)器配置才能生效。

除了在文件中配置開啟慢查詢?nèi)罩就?,也可以?MySQL 命令行中執(zhí)行如下命令開啟慢查詢?nèi)罩尽?/p>

mysql> SET GLOBAL slow_query_log = 1;
Query OK, 0 rows affected (0.00 sec)
mysql> SET GLOBAL slow_query_log_file = '/data/mysql/log/query_log/slow_statement.log';
Query OK, 0 rows affected (0.00 sec)
mysql> SET GLOBAL long_query_time = 10;
Query OK, 0 rows affected (0.00 sec)
mysql> SET GLOBAL log_output = 'FILE';
Query OK, 0 rows affected (0.00 sec)

成功開啟慢查詢?nèi)罩竞?,?huì)在 /data/mysql/log/query_log 目錄下生成 slow_statement.log 文件。

查看慢查詢?nèi)罩?/h3>

慢查詢?nèi)罩救绻渲玫氖禽敵龅轿募?,則會(huì)保存到純文本文件中,直接查看純文本文件的內(nèi)容即可。

構(gòu)造一個(gè)查詢時(shí)間超過(guò) 10 秒的 SQL 語(yǔ)句。

SELECT BENCHMARK(99999999, MD5('mysql'));

這條語(yǔ)句用了大概耗時(shí): 19.102s

我們看看慢查詢?nèi)罩疚募挠涗浫缦拢?/p>

刪除慢查詢?nèi)罩?/h3>

慢查詢?nèi)罩竞筒樵內(nèi)罩疽粯右约兾谋疚募男问酱鎯?chǔ)在服務(wù)器磁盤中,可以直接刪除。如果需要重新生成慢查詢?nèi)罩?,可以?MySQL 命令行中運(yùn)行 FLUSH LOGS 命令,或者在服務(wù)器命令行中執(zhí)行mysqladmin flush-logs 命令。

(1)刪除慢查詢?nèi)罩尽?/p>

rm -rf /data/mysql/log/query_log/slow_statement.log

刪除后,查看/data/mysql/log/query_log目錄下的文件。

結(jié)果顯示,slow_statement.log 文件已經(jīng)被成功刪除。

(2)在 MySQL 命令行中刷新日志。

mysql> FLUSH LOGS;
Query OK, 0 rows affected (0.01 sec)

或者在服務(wù)器命令行中執(zhí)行如下命令刷新日志。

mysqladmin -uroot -p flush-logs
Enter password:

日志刷新成功后,再次查看/data/mysql/log/query_log目錄下的文件。

MySQL重新創(chuàng)建了 slow_statement.log 文件。

關(guān)閉慢查詢?nèi)罩?/h3>

關(guān)閉慢查詢?nèi)罩?,只需要在my.cnf文件或者my.ini文件中配置slow_query_log=0或者直接刪除此選項(xiàng)即可。

[mysqld]
slow_query_log = 0

也可以在MySQL命令行中執(zhí)行如下命令關(guān)閉慢查詢?nèi)罩尽?/p>

mysql> SET GLOBAL slow_query_log = 0;
Query OK, 0 rows affected (0.00 sec)

當(dāng)關(guān)閉慢查詢?nèi)罩竞?,刪除慢查詢?nèi)罩疚募賵?zhí)行刷新日志的操作,MySQL將不再重新創(chuàng)建慢查詢?nèi)罩疚募?/p>

到此這篇關(guān)于深入了解MySQL中的慢查詢?nèi)罩镜奈恼戮徒榻B到這了,更多相關(guān)MySQL慢查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MYSQL數(shù)據(jù)插入之返回自增主鍵ID的方法詳解

    MYSQL數(shù)據(jù)插入之返回自增主鍵ID的方法詳解

    這篇文章主要介紹了MYSQL數(shù)據(jù)插入之返回自增主鍵ID的方法詳解,mysql中的insert插入之后會(huì)有返回值,返回的是影響的行數(shù),也就是說(shuō),成功插入一條數(shù)據(jù)之后返回的是1,失敗則返回0,那么,很多時(shí)候我們都想要得到最后插入的id值,需要的朋友可以參考下
    2023-10-10
  • mysql實(shí)現(xiàn)將data文件直接導(dǎo)入數(shù)據(jù)庫(kù)文件

    mysql實(shí)現(xiàn)將data文件直接導(dǎo)入數(shù)據(jù)庫(kù)文件

    這篇文章主要介紹了mysql實(shí)現(xiàn)將data文件直接導(dǎo)入數(shù)據(jù)庫(kù)文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 詳解mysql 中的鎖結(jié)構(gòu)

    詳解mysql 中的鎖結(jié)構(gòu)

    這篇文章主要介紹了mysql 中的鎖結(jié)構(gòu)的相關(guān)資料,幫助大家更好的理解和使用數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-10-10
  • 一文帶你學(xué)透SQL語(yǔ)言的核心之DML操作

    一文帶你學(xué)透SQL語(yǔ)言的核心之DML操作

    DML(Data?Manipulation?Language)是SQL語(yǔ)言的核心部分,其主要用于對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行增刪改查,在學(xué)習(xí)數(shù)據(jù)時(shí),學(xué)習(xí)DML操作是必不可少的一部分,本文就帶大家詳細(xì)了解SQL語(yǔ)言的核心DML操作,需要的朋友可以參考下
    2023-06-06
  • 為什么MySQL選擇Repeatable Read作為默認(rèn)隔離級(jí)別

    為什么MySQL選擇Repeatable Read作為默認(rèn)隔離級(jí)別

    關(guān)于MySQL的事務(wù)隔離級(jí)別,相信很多讀者都不陌生,那么,你知道為什么Oracle選擇RC作為默認(rèn)級(jí)別,而MySQL要選擇RR作為默認(rèn)的隔離級(jí)別嗎
    2021-07-07
  • MySQL超詳細(xì)實(shí)現(xiàn)用戶管理實(shí)例

    MySQL超詳細(xì)實(shí)現(xiàn)用戶管理實(shí)例

    MySQL 是一個(gè)多用戶數(shù)據(jù)庫(kù),具有功能強(qiáng)大的訪問(wèn)控制系統(tǒng),可以為不同用戶指定不同權(quán)限。在前面的章節(jié)中我們使用的是 root 用戶,該用戶是超級(jí)管理員,擁有所有權(quán)限,包括創(chuàng)建用戶、刪除用戶和修改用戶密碼等管理權(quán)限
    2022-06-06
  • MySQL如何查找樹形結(jié)構(gòu)中某個(gè)節(jié)點(diǎn)及其子節(jié)點(diǎn)

    MySQL如何查找樹形結(jié)構(gòu)中某個(gè)節(jié)點(diǎn)及其子節(jié)點(diǎn)

    這篇文章主要介紹了MySQL如何查找樹形結(jié)構(gòu)中某個(gè)節(jié)點(diǎn)及其子節(jié)點(diǎn)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • sql語(yǔ)句示例之case?when作為where條件

    sql語(yǔ)句示例之case?when作為where條件

    這篇文章主要給大家介紹了關(guān)于sql語(yǔ)句示例之case?when作為where條件的相關(guān)資料,在SQL語(yǔ)句中CASE WHEN子句是根據(jù)條件表達(dá)式的結(jié)果來(lái)執(zhí)行不同的邏輯操作,它使用在WHERE子句中,以根據(jù)特定的條件在查詢結(jié)果中過(guò)濾數(shù)據(jù),需要的朋友可以參考下
    2023-08-08
  • MySql delimiter的作用是什么

    MySql delimiter的作用是什么

    其實(shí)就是告訴mysql解釋器,該段命令是否已經(jīng)結(jié)束了,mysql是否可以執(zhí)行了。默認(rèn)情況下,delimiter是分號(hào);。在命令行客戶端中,如果有一行命令以分號(hào)結(jié)束,那么回車后,mysql將會(huì)執(zhí)行該命令。
    2010-09-09
  • MySQL 數(shù)據(jù)查重、去重的實(shí)現(xiàn)語(yǔ)句

    MySQL 數(shù)據(jù)查重、去重的實(shí)現(xiàn)語(yǔ)句

    這篇文章主要介紹了MySQL 數(shù)據(jù)查重、去重的實(shí)現(xiàn)語(yǔ)句,幫助大家更好的理解和學(xué)習(xí)MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-09-09

最新評(píng)論

井冈山市| 米林县| 巫山县| 宁德市| 巴林左旗| 柏乡县| 定兴县| 东乡族自治县| 灵石县| 错那县| 潼南县| 湛江市| 醴陵市| 朝阳县| 绥江县| 洞头县| 鲜城| 江永县| 高邑县| 安丘市| 隆化县| 广饶县| 丹东市| 麻城市| 玛曲县| 绥棱县| 德钦县| 东城区| 苏州市| 东明县| 米易县| 华池县| 永丰县| 湛江市| 钦州市| 陕西省| 黔南| 鄂托克旗| 宜阳县| 罗定市| 托里县|