解决 MySQL 上缓慢的“SELECT COUNT(*)”查询
您对change_event表的查询,对超过特定change_event_id的行进行计数,正在经历严重的延误。但为什么?让我们深入探讨一下可能的原因。
揭秘 InnoDB 的行为
MySQL 的 InnoDB 引擎使用集群主键,这意味着主键与数据页中的行数据一起存储,而不是比单独的索引页。因此,范围扫描(例如您的扫描)需要扫描数据页中所有可能较宽的行。表的 xml_diff 列(一种 TEXT 数据类型)加剧了这一因素。
优化策略
为了加速查询,有两种方法值得考虑:
其他提示:
要进一步提高性能,请考虑将 change_event_id 列更改为 bigint unsigned。此步骤可以防止负值,还可以简化处理。
以上是为什么我对change_event 表的'SELECT COUNT(*)”查询如此慢?的详细内容。更多信息请关注PHP中文网其他相关文章!