电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

MySQL慢查詢?nèi)绾味ㄎ辉斀?/h1>
瀏覽:6日期:2023-10-08 18:12:14

前言

相信大家在平時(shí)工作中都有過 SQL 優(yōu)化經(jīng)歷,那么在優(yōu)化前就必須找到慢 SQL 方可進(jìn)行分析。這篇文章就介紹下如何定位到慢查詢。

慢查詢?nèi)罩臼?MySQL 內(nèi)置的一項(xiàng)功能,可以記錄執(zhí)行超過指定時(shí)間的 SQL 語句。

以下是慢查詢的相關(guān)參數(shù),大家感興趣的可以看下:

參數(shù) 含義 log_output 日志輸出位置,默認(rèn)為 FILE,即保存為文件,若設(shè)置為 TABLE,則將日志記錄到 mysql.show_log 表中,支持設(shè)置多種格式 slow_query_log_file 指定慢查詢?nèi)罩疚募穆窂胶兔郑墒褂媒^對路徑指定,默認(rèn)值是主機(jī)名-slow.log,位于配置的 datadir 目錄 long_query_time 執(zhí)行時(shí)間超過該值才記錄到慢查詢?nèi)罩荆瑔挝粸槊耄J(rèn)為 10 min_examined_row_limit 對于查詢掃描行數(shù)小于此參數(shù)的SQL,將不會(huì)記錄到慢查詢?nèi)罩局校J(rèn)為 0 log_queries_not_using_indexes 是否將未使用索引的 SQL 記錄到慢查詢?nèi)罩局校_啟此配置后會(huì)無視 long_query_time 參數(shù),默認(rèn)為 OFF log_throttle_queries_not_using_indexes 設(shè)定每分鐘記錄到日志的未使用索引的語句數(shù)目,超過這個(gè)數(shù)目后只記錄語句數(shù)量和花費(fèi)的總時(shí)間,默認(rèn)為 0 log-slow-admin-statements 記錄執(zhí)行緩慢的管理 SQL,如 ALTER TABLE、ANALYZE TABLE、CHECK TABLE、CREATE INDEX、DROP INDEX、OPTIMIZE TABLE 和 REPAIR TABLE,默認(rèn)為 OFF log_slow_slave_statements 記錄從庫上執(zhí)行的慢查詢語句,如果 binlog 的值為 row,則失效,默認(rèn)為 OFF

開啟慢查詢

有兩種方式可以開啟慢查詢

修改配置文件 設(shè)置全局變量

方式一需要修改配置文件 my.ini,在[mysqld]段落中加入如下參數(shù):

[mysqld]log_output=’FILE,TABLE’slow_query_log=’ON’long_query_time=0.001

然后需要重啟 MySQL 才可以生效,命令為 service mysqld restart

方式二無需重啟即可生效,但是重啟會(huì)導(dǎo)致設(shè)置失效,設(shè)置的命令如下所示:

SET GLOBAL slow_query_log = ’ON’;SET GLOBAL log_output = ’FILE,TABLE’;SET GLOBAL long_query_time = 0.001;

這樣就可以將慢查詢?nèi)罩就瑫r(shí)記錄在文件以及 mysql.slow_log 表中。

通過第二種方式開啟慢查詢?nèi)罩荆缓笫褂萌聿樵冋Z句 SELECT * FROM user

然后再查詢慢查詢?nèi)罩荆篠ELECT * FROM mysql.slow_log,可以發(fā)現(xiàn)其中有這樣一條記錄:

MySQL慢查詢?nèi)绾味ㄎ辉斀? src=slow_log

其中,start_time 為執(zhí)行時(shí)間,user_host 為用戶的主機(jī)名,query_time 為查詢所花費(fèi)的時(shí)間,lock_time 為該查詢使用鎖的時(shí)間,rows_sent 為這條查詢返回了多少數(shù)據(jù)給客戶端,rows_examined 表示這條語句掃描了多少行,db 為數(shù)據(jù)庫,sql_text 為這條 SQL,thread_id 為執(zhí)行這條查詢的線程 id。

這樣我們就可以通過 slow_log 表的數(shù)據(jù)進(jìn)行分析,然后對 SQL 進(jìn)行調(diào)優(yōu)了。

以上是通過 Table 來進(jìn)行分析的,下面來通過文件的慢查詢是怎么樣的。

如果不知道文件保存在哪里,可以使用 SHOW VARIABLES LIKE ’%slow_query_log_file%’ 來查看文件保存位置,打開慢查詢?nèi)罩疚募梢钥闯雒课逍斜硎疽粋€(gè)慢 SQL,這樣查看比較費(fèi)事,可以使用一些工具來查看。

MySQL慢查詢?nèi)绾味ㄎ辉斀? src=慢查詢?nèi)罩疚募?/p>

mysqldumpslow

MySQL 內(nèi)置了 mysqldumpslow 這個(gè)工具來幫助我們分析慢查詢?nèi)罩疚募琖indows 環(huán)境下使用該工具需要安裝 Perl 環(huán)境。

可以通過 -help 來查看它的命令參數(shù):

MySQL慢查詢?nèi)绾味ㄎ辉斀? src=mysqldumpslow help

比如我們可以通過 mysqldumpslow -s t 10 LAPTOP-8817LKVE-slow.log 命令得到按照查詢時(shí)間排序的 10 條 SQL 。

MySQL慢查詢?nèi)绾味ㄎ辉斀? src=mysqldumpslow 結(jié)果

pt-query-digest

除此之外還有 pt-query-digest,這個(gè)是 Percona Toolkit 中的工具之一,下載地址:https://www.percona.com/downloads/percona-toolkit/LATEST/,如果是 Windows 系統(tǒng),可以在安裝 Perl 的環(huán)境下,把腳本下載下來:https://raw.githubusercontent.com/percona/percona-toolkit/3.x/bin/pt-query-digest

下面先對 pt-query-digest 進(jìn)行簡單的介紹:

pt-query-digest 是用于分析 MySQL 慢查詢的一個(gè)第三方工具,可以分析 binlog、General log 和 slowlog,也可以通過 showprocesslist 或者通過 tcpdump 抓取的 MySQL 協(xié)議數(shù)據(jù)來進(jìn)行分析,可以把分析結(jié)果輸出到文件中,分析過程是先對查詢語句的條件進(jìn)行參數(shù)化,然后對參數(shù)化以后的查詢進(jìn)行分組統(tǒng)計(jì),統(tǒng)計(jì)出各查詢的執(zhí)行時(shí)間、次數(shù)、占比等,可以借助分析結(jié)果找出問題進(jìn)行優(yōu)化。

有興趣的可以先下載下來自己玩玩,將在后續(xù)的文章中對 pt-query-digest 工具進(jìn)行詳細(xì)介紹。

show processlist

還有種情況是慢查詢還在執(zhí)行中,慢查詢?nèi)罩纠锸钦也坏铰?SQL 呢,這個(gè)時(shí)候可以用 show processlist 命令來尋找慢查詢,該命令可以顯示正在運(yùn)行的線程,執(zhí)行結(jié)果如下圖所示,可以根據(jù) Time 的大小來判斷是否為慢查詢。

MySQL慢查詢?nèi)绾味ㄎ辉斀? src=show processlist

總結(jié)

這篇文章主要講解了如何定位慢查詢以及簡單介紹了 mysqldumpslow 和 pt-query-digest 工具,后續(xù)還會(huì)講解 explain 和 show profile 以及 trace 等常用的方法。

你在定位慢查詢或者優(yōu)化 SQL 時(shí),都會(huì)用到哪些方法呢?

到此這篇關(guān)于MySQL慢查詢?nèi)绾味ㄎ坏奈恼戮徒榻B到這了,更多相關(guān)MySQL慢查詢定位內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

參考文檔

https://dev.mysql.com/doc/refman/5.7/en/slow-query-log.html

標(biāo)簽: MySQL 數(shù)據(jù)庫
相關(guān)文章:

主站蜘蛛池模板: 房在线-免费房产管理系统软件-二手房中介房屋房源管理系统软件 | 雷冲击高压发生器-水内冷直流高压发生器-串联谐振分压器-武汉特高压电力科技有限公司 | BOE画框屏-触摸一体机-触控查询一体机-触摸屏一体机价格-厂家直销-触发电子 | 首页|专注深圳注册公司,代理记账报税,注册商标代理,工商变更,企业400电话等企业一站式服务-慧用心 | 一氧化氮泄露报警器,二甲苯浓度超标报警器-郑州汇瑞埔电子技术有限公司 | 气动绞车,山东气动绞车,气动绞车厂家-烟台博海石油机械有限公司 气动隔膜泵厂家-温州永嘉定远泵阀有限公司 | 河南档案架,档案密集架,手动密集架,河南密集架批发/报价 | 非标压力容器_碳钢储罐_不锈钢_搪玻璃反应釜厂家-山东首丰智能环保装备有限公司 | 冷水机,风冷冷水机,水冷冷水机,螺杆冷水机专业制造商-上海祝松机械有限公司 | 东莞市超赞电子科技有限公司 全系列直插/贴片铝电解电容,电解电容,电容器 | 国际线缆连接网 - 连接器_线缆线束加工行业门户网站 | 细胞染色-流式双标-试剂盒免费代做-上海研谨生物科技有限公司 | 破碎机锤头_合金耐磨锤头_郑州宇耐机械工程技术有限公司 | 二手电脑回收_二手打印机回收_二手复印机回_硒鼓墨盒回收-广州益美二手电脑回收公司 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 南京种植牙医院【官方挂号】_南京治疗种植牙医院那个好_南京看种植牙哪里好_南京茀莱堡口腔医院 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 医学动画公司-制作3d医学动画视频-医疗医学演示动画制作-医学三维动画制作公司 | 伟秀电气有限公司-10kv高低压开关柜-高低压配电柜-中置柜-充气柜-欧式箱变-高压真空断路器厂家 | 防火阀、排烟防火阀、电动防火阀产品生产销售商-德州凯亿空调设备有限公司 | 烟台螺纹,烟台H型钢,烟台钢材,烟台角钢-烟台市正丰金属材料有限公司 | 低温等离子清洗机(双气路进口)-嘉润万丰 | 臭氧老化试验箱,高低温试验箱,恒温恒湿试验箱,防水试验设备-苏州亚诺天下仪器有限公司 | 航空铝型材,7系铝型材挤压,硬质阳*氧化-余润铝制品 | 西门子代理商_西门子变频器总代理-翰粤百科 | CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | 必胜高考网_全国高考备考和志愿填报信息平台 | 阳光模拟试验箱_高低温试验箱_高低温冲击试验箱_快速温变试验箱|东莞市赛思检测设备有限公司 | 水篦子|雨篦子|镀锌格栅雨水篦子|不锈钢排水篦子|地下车库水箅子—安平县云航丝网制品厂 | 全自动贴标机-套标机-工业热风机-不干胶贴标机-上海厚冉机械 | 运动木地板_体育木地板_篮球馆木地板_舞台木地板-实木运动地板厂家 | 西宁装修_西宁装修公司-西宁业之峰装饰-青海业之峰墅级装饰设计公司【官网】 | LZ-373测厚仪-华瑞VOC气体检测仪-个人有毒气体检测仪-厂家-深圳市深博瑞仪器仪表有限公司 | 汽车整车综合环境舱_军标砂尘_盐雾试验室试验箱-无锡苏南试验设备有限公司 | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) | 结晶点测定仪-润滑脂滴点测定仪-大连煜烁 | 春腾云财 - 为企业提供专业财税咨询、代理记账服务 | HDPE土工膜,复合土工膜,防渗膜价格,土工膜厂家-山东新路通工程材料有限公司 | 福建省教师资格证-福建教师资格证考试网 | 上海律师咨询_上海法律在线咨询免费_找对口律师上策法网-策法网 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 |