一次数据库问题优化

  最近连续几天,mysql数据库会运行中假死,记录一下排查过程。

1、在数据库相应缓慢的时候,用client连接上去,执行show processlist 命令,

查看是哪条语句执行缓慢,或者哪些语句执行缓慢。查询结果会列出当前正在执行哪些语句,以及执行了多长时间,当前执行状态等信息。

2、检查缓慢语句设计的表和字段,判断是否表数据量过大,或者查询条件的字段需要加索引。

3、检查是否有存储过程或者函数设计到DDL语句,DDL操作会产生metadatalock,建议业务低峰期操作。

基本上按照上面三条检查排除能解决一大部分的常见问题了。

比如,我们这次是由于日志log表数据量过大,超过800W了。导致很多数据统计相关联查询语句执行缓慢,按照惯例是需要半年把历史数据迁移到历史库去,避免经常查询的表数据过大。

猜你喜欢

转载自my.oschina.net/u/2328100/blog/1609437