【Mysql】mysql count主键字段很慢超时 执行计划Select tables optimized away ,最终调整buffer pool问题解决
背景:
mysql表 主键字段 count,速度很慢,耗时将近30s
从执行计划可以看出:
explain SELECT COUNT(rule_id) AS dataCount FROM `sku_safe_stock_rule`;
原理分析:
Select tables optimized away
SELECT操作已经优化到不能再优化了
(MySQL根本没有遍历表或索引就返回数据了)
由此可以看出 本sql语句执行解析后,直接在 mysql buffer缓存即可命中,不用去存储引擎遍历表即可返回结果。
继续分析:
但是既然直接在缓存命中后即可返回count()结果,为什么仍然这么慢?
这里便引出 mysql buffer pool这个概念. (详细原理可再查再学)
最终解决:
最终,发现
1.
mysql buffer pool只有 512M。
调整为 2G后, 该条count(主键) sql性能便提升飞速。
2.
mysql表中总数据量440W+, 失效数据很多,执行sql工单,归档无效数据后,对sql性能也有很大帮助。
分类:
sql/数据库
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
2023-08-30 [Mongo]MongoDB连接池推荐配置
2023-08-30 【Redis】JedisPool资源池优化
2023-08-30 [MySQL]关于在更新JDK版本后插入mysql时间与本地时间相差13或14小时的问题
2023-08-30 【TCP】TCP Timers
2021-08-30 【arthas】 arthas命令记录
2018-08-30 【redis】spring boot中 使用redis hash 操作 --- 之 使用redis实现库存的并发有序操作
2018-08-30 【多线程】java多线程Completablefuture 详解【在spring cloud微服务之间调用,防止接口超时的应用】【未完成】