问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

MySQL 查询慢的问题

发布网友 发布时间:2022-04-07 16:13

我来回答

3个回答

懂视网 时间:2022-04-07 20:35

方法2:修改my.cnf{加入如下命令}
#cat my.cnf
long_query_time = 3
log-slow-queries = /mnt/mydata/tkudb-slow.log 
重启mysql服务后,设置生效;
步骤2:设置慢查询的时间
系统默认值查看{默认慢查询的时间为10s}
mysql> show variables like "%long%"; 
+---------------------------------------------------+-----------+
| Variable_name                                     | Value     |
+---------------------------------------------------+-----------+
| long_query_time                                   | 10.000000 |
| max_long_data_size                                | 1048576   |
| performance_schema_events_waits_history_long_size | 10000     |
+---------------------------------------------------+-----------+
3 rows in set (0.00 sec)
mysql> set global long_query_time=3;        
Query OK, 0 rows affected (0.00 sec) 3.日志分析与处理
1.利用文本处理工具如notepad+,处理tkudb-slow.log 
2.使用mysqldumpslow工具
[root@tkudb mydata]# mysqldumpslow --help
Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]
Parse and summarize the MySQL slow query log. Options are
  --verbose    verbose
  --debug      debug
  --help       write this text to standard output
  -v           verbose
  -d           debug
  -s ORDER     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
例子:
查询最后10次log
[root@tkudb mydata]# mysqldumpslow -s r -t 10 /mnt/mydata/tkudb-slow.log
查询带有select关键词的最后10次log
[root@tkudb mydata]# mysqldumpslow -s r -t 10 -g ‘select‘ /mnt/mydata/tkudb-slow.log
方法3:集群数据库,所有主机的慢日志集中写到某一个监控数据库的表,由php统一调用显示!

4.如何定期安全清理slow.log

1.先执行备份,然后对备份文件压缩打包,最后清除slow.log

MySQL慢查询整理

标签:linux下开启mysql慢查询   mysql慢查询   

热心网友 时间:2022-04-07 17:43

问题

我们有一个 SQL,用于找到没有主键 / 唯一键的表,但是在 MySQL 5.7 上运行特别慢,怎么办?


实验

我们搭建一个 MySQL 5.7 的环境,此处省略搭建步骤。

写个简单的脚本,制造一批带主键和不带主键的表:

执行一下脚本:

现在执行以下 SQL 看看效果:

...

执行了 16.80s,感觉是非常慢了。

现在用一下 DBA 三板斧,看看执行计划:

感觉有点惨,由于 information_schema.columns 是元数据表,没有必要的统计信息。

那我们来 show warnings 看看 MySQL 改写后的 SQL:

我们格式化一下 SQL:

可以看到 MySQL 将

select from A where A.x not in (select x from B) //非关联子查询

转换成了

select from A where not exists (select 1 from B where B.x = a.x) //关联子查询

如果我们自己是 MySQL,在执行非关联子查询时,可以使用很简单的策略:

select from A where A.x not in (select x from B where ...) //非关联子查询:1. 扫描 B 表中的所有记录,找到满足条件的记录,存放在临时表 C 中,建好索引2. 扫描 A 表中的记录,与临时表 C 中的记录进行比对,直接在索引里比对,

而关联子查询就需要循环迭代:

select from A where not exists (select 1 from B where B.x = a.x and ...) //关联子查询扫描 A 表的每一条记录 rA:     扫描 B 表,找到其中的第一条满足 rA 条件的记录。

显然,关联子查询的扫描成本会高于非关联子查询。

我们希望 MySQL 能先"缓存"子查询的结果(缓存这一步叫物化,MATERIALIZATION),但MySQL 认为不缓存更快,我们就需要给予 MySQL 一定指导。

...

可以看到执行时间变成了 0.67s。

整理

我们诊断的关键点如下:

\1. 对于 information_schema 中的元数据表,执行计划不能提供有效信息。

\2. 通过查看 MySQL 改写后的 SQL,我们猜测了优化器发生了误判。

\3. 我们增加了 hint,指导 MySQL 正确进行优化判断。

但目前我们的实验仅限于猜测,猜中了万事大吉,猜不中就无法做出好的诊断。

热心网友 时间:2022-04-07 19:01

  吴起做大将,与最下等的士兵同样穿衣吃饭,睡觉不铺席子,行军也不骑马,亲自挑上士兵的粮食,与士兵们分担疾苦。有个士兵患了毒疮,吴起为他吸吮毒汁。士兵的母亲听说后却痛哭。有人奇怪地问:“你的儿子是个士兵,而吴起将军亲自为他吸吮毒疮,你为什么哭?”士兵母亲答道:“不是这样啊!当年吴将军为孩子的父亲吸过毒疮,他父亲作战从不后退,就战死在敌阵中了。吴将军现在又为我儿子吸毒疮,我不知道他该死在哪里了,所以哭他。”
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
匀强电场中电势降落的方向是电场强度的方向 在匀强电场中,电势降低的方向就是电场强度的方向 求这个动画的出处,香蕉皮把女孩拎起来踢足球 ...50+的那场比赛是对战那个队的?(最好有视频地址) 职场上遇到了命令口气的同事怎么办? 我儿子在部队工作,上级下达了任职命令,怎么还没发资历章呢?_百度知 ... ...上级领导,上级组织部门领导到场宣读任命书,我如何致答谢词?_百度知 ... 002119什么股 allow sb. to do还是allow sb. doing? 祝福语:2022适合护士节发朋友圈句子 绵竹这些天天气如何 橄榄球怎么打?如何得分?规则是什么?有什么窍门打橄榄球? 橄榄球作为一项奥运会的项目,为什么中国几乎没有人玩? 绵竹天气` 打橄榄球的作用 在橄榄球体育项目上,哪些问题必须注意? 在中国打橄榄球是一种什么体验? 橄榄球有哪些技巧? 重新再做一个梦会怎么样? 电脑无缝针织内衣机的操作说明书在哪里有…慈星牌圆形机的 最近有没有什么好看的动漫哇?(要长的!至少要100以上) 王喜的王喜演出作品 合租之恋的小说目录 事业单位加入企业微信群有什么用 经典的入党积极分子思想汇报一篇? 华为畅享10e能用隐私空间吗? 煤矿下料队一季度安全生产工作总结 娱乐圈粉丝圈畸形有很多,其中代表有哪些? 复制银行卡号到excel表格里面,结果后几位数字变成000是什么情况_百度知 ... 美队3要来了,微博上说要分区做,什么冬唯铁唯盾冬的,都是什么意思呀?? 绵竹天气预报早上锻炼适合跑步吗 如何删除在58同城网公布的公司信息? 58同城发布招聘信息怎么不能彻底删除? 为什么我在58同城发的招聘信息总是被撤了呢? 58同城免费用户发布职位以后显示多个职位发布,怎么取消 58同城企业名录上的信息怎么删除? 很久之前发的招聘信息,百度还能搜出来,试了自己删登了好几个账 高铁票怎么查询? u盘里面的文件丢了,有没有好用点的恢复软件? 如果恢复出厂设置,如微信,抖音短视频照片会不会删除了呢? 手机恢复出厂设置照片和文件会删除吗? 手机忘记密码,恢复出厂设置,照片会删除吗? 若是想开开一家奶茶店,应该需要提前做什么? 怎样预防别人申诉我的 甘肃庆阳天怡宸建筑设备有限责任公司怎么样? “阿拉欢喜侬”是什么意思呢? 你觉得和双鱼座的女生谈恋爱感觉如何? 阿拉伐是白相宁 这句话是什么意思? 每晚焚烧垃圾箱垃圾不分季节可以举报吗? 甘肃“少年犯”李坤落网记,凶手罪行累累,后来怎样了? 北洋29年银币有短尾龙版吗?
  • 焦点

最新推荐

猜你喜欢

热门推荐