mysql5.7 有一条很简单的查询语句,服务器资源很低但是sql偶尔动不动就10几20秒

oYueShan 2024-03-03 16:22:59

 

 

这个in的内容不一定5-20个,这张表数据量也不大300来万数据,但是每天总有10几条慢sql,mysql重启之后查看也挺慢,innodb_buffer设置为52G 硬件资源为系统centos7.7 磁盘iops5000 吞吐量150MB/s 4k测的30MB/s cpu32核内存80G  数据库总数据量数据+索引差不多170G

关键我不清楚了一共能查几千条数据sending_data为什么操作io那么多次,他是干啥操作那么多次,感觉要把所有数据全读内存他才罢休

 

...全文
1065 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

解决了吗

oYueShan 03-04
  • 打赏
  • 举报
回复

我搞到主库里查询了,主库查询很快一点没影响,难道主从能影响这个吗?什么原理呢

  • 打赏
  • 举报
回复

给数据库搞个体检

oYueShan 03-04
  • 举报
回复
@helloworld_zhb 怎么搞呢
juzipaney 03-04
  • 打赏
  • 举报
回复

代码解决的话,in改成 a = b or a = c,大面就快了,再快可以加个索引

oYueShan 03-04
  • 举报
回复
@juzipaney 哥们我都用了强制索引了,而且如果in与or有那么大区别的话,mysql优化器删了吧
oYueShan 03-03
  • 打赏
  • 举报
回复

又出现一次,我一开始以为脏页太多的缘故,查了一下脏页并不多,最多几十而已,压力确实很小,不是脏页的事

img

  • 举报
回复
@oYueShan 表的结构和索引都很简单。查询也是用的强制索引,sql这里我觉得出问题的概率不大。‘关键我不清楚了一共能查几千条数据sending_data为什么操作io那么多次,他是干啥操作那么多次,感觉要把所有数据全读内存他才罢休’ 看完你这个描述我在想,会不会是sql在生成的时候,由于参数都是空值,导致有全表查询的sql,瞬间拉高了内存占用,导致出现其它问题
oYueShan 03-04
  • 举报
回复
@Violet-1996 没看明白什么参数空值呢,kc_id都是非空的呀

56,785

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧