国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

mysql進階-查詢優(yōu)化-慢查詢?nèi)罩?/h1>

這篇具有很好參考價值的文章主要介紹了mysql進階-查詢優(yōu)化-慢查詢?nèi)罩?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、什么是慢查詢?nèi)罩?/h2>

日志對一個程序來說非常重要,他能幫助程序員在系統(tǒng)出現(xiàn)問題時快速定位問題,慢查詢?nèi)罩?/strong>(slow query log)是MySQL自帶的幾種日志文件中非常重要的一種日志(另還有錯誤日志、查詢?nèi)罩?、二進制日志)。MySQL的慢查詢?nèi)罩臼怯糜谟涗泩?zhí)行時間超過指定閾值的SQL查詢語句的一種機制。這個閾值由MySQL的參數(shù)long_query_time 指定,默認值為10秒。當一個查詢的執(zhí)行時間超過這個閾值時,MySQL就會將這個查詢的詳細信息記錄到慢查詢?nèi)罩局?,以供進一步分析和優(yōu)化使用。慢查詢?nèi)罩究梢詭椭_發(fā)人員和管理員發(fā)現(xiàn)查詢緩慢或性能低下的SQL查詢,以及找出相關的問題和瓶頸。下面將詳細介紹MySQL慢查詢?nèi)罩镜淖饔?、用途和使用方法?/p>

二、慢查詢?nèi)罩灸芨墒裁?/h2>

2.1 性能分析和優(yōu)化

慢查詢?nèi)罩究梢詭椭_發(fā)人員和管理員找出執(zhí)行緩慢或性能低下的SQL查詢,從而進行進一步的優(yōu)化和調(diào)整。通過讀取日志文件,可以獲取SQL查詢的具體執(zhí)行時間和執(zhí)行次數(shù),以及相應的服務器資源占用情況和響應時間等指標,從而確定查詢語句的瓶頸和性能問題所在,并根據(jù)實際執(zhí)行計劃進行優(yōu)化,以提高查詢性能和執(zhí)行效率。

2.2 診斷和排查問題

慢查詢?nèi)罩究梢杂糜谠\斷和排查數(shù)據(jù)庫中的各種問題和異常。例如,可以通過查詢?nèi)罩疚募?,找出導致?shù)據(jù)庫響應時間延長的查詢語句、語法錯誤、索引缺失等問題,并針對性地進行解決和優(yōu)化,從而提高數(shù)據(jù)庫的可用性和穩(wěn)定性。

2.3 數(shù)據(jù)分析和探索

慢查詢?nèi)罩究梢宰鳛閿?shù)據(jù)庫性能的一種指標進行分析和探索。通過對日志文件的分析,可以研究數(shù)據(jù)庫操作的歷史記錄、訪問模式、查詢分布等重要特征,從而深入了解數(shù)據(jù)庫的運行狀況和性能瓶頸,幫助開發(fā)人員和管理員進行針對性的優(yōu)化和調(diào)整,以提升數(shù)據(jù)庫的性能和可靠性。

三、慢查詢?nèi)罩緦崙?zhàn)

3.1 永久開啟開啟慢查詢?nèi)罩?/h3>

要開啟MySQL慢查詢?nèi)罩?,需要修改MySQL服務器的配置文件my.cnf(my.ini),
mysql的配置文件路徑:

  • linux路徑
/etc/mysql/my.cnf
  • windows路徑 5.7 是版本號
C:\ProgramData\MySQL\MySQL Server 5.7/my.ini

也可以通過命令行的形式進行查詢目錄:

show variables like '%slow_query_log%'; 

mysql進階-查詢優(yōu)化-慢查詢?nèi)罩? referrerpolicy=
mysql進階-查詢優(yōu)化-慢查詢?nèi)罩? referrerpolicy=

并添加如下配置信息, 如果路徑不存在一定要手動創(chuàng)建,否者可能會因為權限不夠,無法記錄慢查詢?nèi)罩尽?/mark>

# 開啟慢查詢?nèi)罩?/span>
slow_query_log = 1 

# 指定慢查詢的閾值,默認為10秒
long_query_time = 10 

# 指定慢查詢?nèi)罩镜谋4嫖恢?/span>
slow_query_log_file = /var/log/mysql/mysql-slow.log

其中,slow_query_log為開啟慢查詢?nèi)罩镜拈_關,1為開啟,0為關閉。long_query_time為慢查詢的閾值時間,單位為秒,默認情況下為10秒。最后,slow_query_log_file為慢查詢?nèi)罩疚募谋4嫖恢?,也可以指定文件名?/p>

完成配置后,需要重啟MySQL服務器才能使配置生效。

3.2 臨時開啟慢查詢?nèi)罩?/h3>

我們也可以在命令行,或者Navicat 中執(zhí)行如下命令開啟慢查詢?nèi)罩荆?/p>

SET GLOBAL slow_query_log = 1;
SET GLOBAL slow_query_log_file = '/mysql-slow.log';
SET GLOBAL long_query_time = 10;
SET GLOBAL log_output = 'FILE';

  • 優(yōu)點:不需要重啟mysql,不區(qū)分系統(tǒng),簡單方便
  • 缺點:重啟mysql配置就失效了。

3.4 常用命令

# 查看慢查詢?nèi)罩镜耐暾窂胶臀募?/span>
show variables like 'slow_query_log_file'; 

# 查看當前MySQL服務器的慢查詢?nèi)罩臼欠耖_啟
show variables like 'slow_query_log';

# 查詢慢查詢的閾值
show variables like '%long_query_time%'; 

# 查詢慢查詢?nèi)罩据敵龇绞?/span>
show variables like '%log_output%'; 


四、如何分析慢查詢?nèi)罩?/h2>

mysqldumpslow 工具是慢查詢自帶的分析慢查詢工具,一般只要安裝了mysql,就會有該工具。
完成語法如下:

Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]  -- 后跟參數(shù)以及l(fā)og文件的絕對地址;

  -s            what to sort by (al, at, ar, c, l, r, t), 'at' is default
                al: average lock time
                ar: average rows sent
                at: average query time
                c: count
                l: lock time
                r: rows sent
                t: query time

  -r           reverse the sort order (largest last instead of first)
  -t NUM       just show the top n queries
  -a           don't abstract all numbers to N and strings to 'S'
  -n NUM       abstract numbers with at least n digits within names
  -g PATTERN   grep: only consider stmts that include this string
  -h HOSTNAME  hostname of db server for *-slow.log filename (can be wildcard),
               default is '*', i.e. match all
  -i NAME      name of server instance (if using mysql.server startup script)
  -l           don't subtract lock time from total time

mysqldumpslow 命令 常見的分析和優(yōu)化查詢?nèi)罩疚募Z句如下:

取出使用最多的10條慢查詢

mysqldumpslow -s c -t 10 /var/log/mysql/mysql-slow.log 

取出查詢時間最慢的3條慢查詢

mysqldumpslow -s t -t 3 /var/log/mysql/mysql-slow.log  

得到按照時間排序的前10條里面含有左連接的查詢語句

mysqldumpslow -s t -t 10 -g “left join/var/log/mysql/mysql-slow.log 

按照掃描行數(shù)最多的前10條語句

 mysqldumpslow -s r -t 10 -g 'left join' /var/log/mysql/mysql-slow.log  

按查詢總時間排序,顯示前10條查詢信息

mysqldumpslow -s t -t 10 /var/log/mysql/mysql-slow.log 

查詢次數(shù)排序,顯示前20條查詢信息

mysqldumpslow -s c -t 20 /var/log/mysql/mysql-slow.log 

其中,-s t 表示按查詢總時間排序,-s c表示按查詢次數(shù)排序,-t 10表示顯示前10條查詢信息。

widows下使用mysqldumpslow 可以參考:Windows下安裝使用mysqldumpslow

五、優(yōu)化慢查詢語句

通過分析和統(tǒng)計MySQL慢查詢?nèi)罩疚募?,可以找出不同查詢語句的執(zhí)行時間和執(zhí)行次數(shù)等指標,以便進一步優(yōu)化和調(diào)整查詢語句的性能和執(zhí)行效率。優(yōu)化的方法通常包括以下幾個方面:

(1)添加或修改表索引,以提高查詢速度。

(2)優(yōu)化SQL查詢語句,使用優(yōu)化的SQL語句可以使查詢性能得到提升。

(3)調(diào)整MySQL服務器參數(shù),如增加緩存區(qū)大小、減少線程數(shù)等,以達到更好的性能優(yōu)化效果。

(4)升級數(shù)據(jù)庫版本,選擇更高效的數(shù)據(jù)庫版本可以對查詢性能產(chǎn)生顯著影響。

五、總結(jié)

MySQL慢查詢?nèi)罩臼荕ySQL數(shù)據(jù)庫優(yōu)化和性能調(diào)整的重要工具之一,通過記錄和分析執(zhí)行緩慢的SQL查詢語句,可以找出查詢瓶頸和性能問題所在,并針對性地進行優(yōu)化和調(diào)整。盡管慢查詢?nèi)罩緯a(chǎn)生一定的系統(tǒng)負擔和日志存儲量,但是它對于開發(fā)人員和管理員來說確實是一種非常有價值的工具,可以大幅提高MySQL性能的穩(wěn)定性和可靠性。文章來源地址http://www.zghlxwxcb.cn/news/detail-438091.html

到了這里,關于mysql進階-查詢優(yōu)化-慢查詢?nèi)罩镜奈恼戮徒榻B完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包