美文网首页程序员
Mysql 执行问题排查

Mysql 执行问题排查

作者: 亮哥007 | 来源:发表于2019-02-12 23:16 被阅读0次

前几天有位同学碰到这样一个问题:之前运行良好的一段程序,由于最近数据量变大了,经常报取不到数据库连接的错误。将问题的解决过程总结记录下来:

首先,查看数据库配置的最大连接数,没有发现任何配置问题

show VARIABLES like 'max_connections'

然后,在问题复现时段看了一下数据库的执行状态,发现有大量的执行query操作的连接,且耗时非常长

show processlist

对select语句进行分析,发现语句索引设计的有问题,查询时全表扫描!重建索引问题解决

这里重点说下,show processlist
如果是root用户执行,能看到所有用户的当前的连接状态。如果是普通账号,只能看到当前账号占用的数据库连接。show proccesslist只能列出前100条,如果想看全数据的话要使用 show full processlist。
另外,show processlist与下面语句等价

select * from information_schema.`PROCESSLIST`

举个例子,说明如何通过show processlist发现问题
执行下面语句模拟占用数据库连接2分钟,然后执行show processlist

select sleep(120)

可以清晰的看到,每个数据连接执行的命令(Command)、耗时(Time)、状态(State)及语句(Info)

image.png
最后,分享一下数据库日常开发的的心得
1.复用数据库连接
2.优化sql及索引,如果数据量较大可以考虑数据分片(分库分表)
3.优化代码逻辑:
1)数据分页,减少一次取出的数据量
2)减少数据库的交互频次,批量查询、更新

相关文章

  • Mysql 执行问题排查

    前几天有位同学碰到这样一个问题:之前运行良好的一段程序,由于最近数据量变大了,经常报取不到数据库连接的错误。将问题...

  • MySQL5.7 union all + jdbc预编译参数us

    1. 问题背景 生产环境Percona MySQL 5.7.19 执行SQL报错 如下: 2. 排查问题 通过网络...

  • mysql慢查询日志

    慢查询日志 MySQL 慢查询日志是排查问题 SQL 语句,以及检查当前 MySQL 性能的一个重要功能,执行时间...

  • 记一次Mysql事物锁等待超时 Lock wait timeou

    问题发生背景: 在MySQL执行更新语句,大概也就一千行左右,执行不成功,报如下错误 然后开始漫长的排查过程参考网...

  • 数据库内存,CPU过高排查

    一、先排查业务层面 绝大多情况是由于sql问题导致,因此需要优先从sql排查。先登录mysql,通过mysql> ...

  • mysql问题排查汇编

    1、mysql : too many connectionshow processlist ;show statu...

  • ##Mysql问题排查文档

    Mysql问题排查文档 - thomas0yang的专栏 - 博客频道 - CSDN.NET http://bl...

  • Mysql 链接问题排查

    场景 最近生产上执行日批量一直停留到了某一天,但是却没有收到中断报警,后面客户反馈缺少统计数据才发现该问题。后面查...

  • MySQL死锁问题排查

    概述 在开发中经常用到的mysql数据库,mysql作为开源的数据库有很多优越的地方;大家可以不了解其中的原理,但...

  • crontab 不执行问题排查

    参考文章:https://blog.csdn.net/u011734144/article/details/545...

网友评论

    本文标题:Mysql 执行问题排查

    本文链接:https://www.haomeiwen.com/subject/bguleqtx.html