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

您的位置:首頁技術文章
文章詳情頁

實例講解MySQL 慢查詢

瀏覽:8日期:2023-10-08 11:47:55

簡介

開啟慢查詢?nèi)罩荆梢宰孧ySQL記錄下查詢超過指定時間的語句,通過定位分析性能的瓶頸,才能更好的優(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

總結:(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.另外建議在使用這些命令時結合|和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_idSHOW 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ā)需要注意的結論:

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

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

以上就是實例講解MySQL 慢查詢的詳細內(nèi)容,更多關于MySQL 慢查詢的資料請關注好吧啦網(wǎng)其它相關文章!

相關文章:
主站蜘蛛池模板: 上海小程序开发-小程序制作-上海小程序定制开发公司-微信商城小程序-上海咏熠 | 防水套管厂家-柔性防水套管-不锈钢|刚性防水套管-天翔管道 | 雨燕360体育免费直播_雨燕360免费NBA直播_NBA篮球高清直播无插件-雨燕360体育直播 | 衡阳耐适防护科技有限公司——威仕盾焊接防护用品官网/焊工手套/焊接防护服/皮革防护手套 | 火锅加盟_四川成都火锅店加盟_中国火锅连锁品牌十强_朝天门火锅【官网】 | 冲击式破碎机-冲击式制砂机-移动碎石机厂家_青州市富康机械有限公司 | 窖井盖锯圆机_锯圆机金刚石锯片-无锡茂达金刚石有限公司 | 薄壁轴承-等截面薄壁轴承生产厂家-洛阳薄壁精密轴承有限公司 | 彭世修脚_修脚加盟_彭世修脚加盟_彭世足疗加盟_足疗加盟连锁_彭世修脚技术培训_彭世足疗 | 深圳APP开发公司_软件APP定制开发/外包制作-红匣子科技 | 振动时效_振动时效仪_超声波冲击设备-济南驰奥机电设备有限公司 北京宣传片拍摄_产品宣传片拍摄_宣传片制作公司-现像传媒 | 同学聚会纪念册制作_毕业相册制作-成都顺时针宣传画册设计公司 | 即用型透析袋,透析袋夹子,药敏纸片,L型涂布棒-上海桥星贸易有限公司 | 蒸压釜_蒸养釜_蒸压釜厂家-山东鑫泰鑫智能装备有限公司 | 武汉高低温试验箱_恒温恒湿试验箱厂家-武汉蓝锐环境科技有限公司 | UV固化机_UVLED光固化机_UV干燥机生产厂家-上海冠顶公司专业生产UV固化机设备 | 陶氏道康宁消泡剂_瓦克消泡剂_蓝星_海明斯德谦_广百进口消泡剂 | 陕西视频监控,智能安防监控,安防系统-西安鑫安5A安防工程公司 | 健康管理师报名入口,2025年健康管理师考试时间信息网-网站首页 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | wika威卡压力表-wika压力变送器-德国wika代理-威卡总代-北京博朗宁科技 | 对夹式止回阀厂家,温州对夹式止回阀制造商--永嘉县润丰阀门有限公司 | 旋转滴界面张力仪(张力测定仪器)-百科| 步进_伺服_行星减速机,微型直流电机,大功率直流电机-淄博冠意传动机械 | 真空干燥烘箱_鼓风干燥箱 _高低温恒温恒湿试验箱_光照二氧化碳恒温培养箱-上海航佩仪器 | 回转炉,外热式回转窑,回转窑炉-淄博圣元窑炉工程有限公司 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 淄博不锈钢无缝管,淄博不锈钢管-鑫门物资有限公司 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 釜溪印象网络 - Powered by Discuz! | 小型铜米机-干式铜米机-杂线全自动铜米机-河南鑫世昌机械制造有限公司 | 国际高中-国际学校-一站式择校服务-远播国际教育 | 家德利门业,家居安全门,别墅大门 - 安徽家德利门业有限公司 | 电镀标牌_电铸标牌_金属标贴_不锈钢标牌厂家_深圳市宝利丰精密科技有限公司 | 东莞办公家具厂家直销-美鑫【免费3D效果图】全国办公桌/会议桌定制 | 复合肥,化肥厂,复合肥批发,化肥代理,复合肥品牌-红四方 | 防腐储罐_塑料储罐_PE储罐厂家_淄博富邦滚塑防腐设备科技有限公司 | 隔离变压器-伺服变压器--输入输出电抗器-深圳市德而沃电气有限公司 | 冻干机(冷冻干燥机)_小型|实验型|食品真空冷冻干燥机-松源 | 知企服务-企业综合服务(ZiKeys.com)-品优低价、种类齐全、过程管理透明、速度快捷高效、放心服务,知企专家! | 恒温振荡混匀器-微孔板振荡器厂家-多管涡旋混匀器厂家-合肥艾本森(www.17world.net) | 高博医疗集团上海阿特蒙医院 |