加速 MySQL 中的行计数
尽管对“状态”列建立了索引,但在大型 MySQL 表中对行进行计数仍然很耗时,从而导致问题:有没有技术可以加快此类查询?虽然存在结果缓存或维护单独的汇总表等技术,但可以直接优化这些计数吗?
使用具有 200 万行的示例表,基准测试显示 MyISAM 的执行速度(0.9-1.1 秒)比 InnoDB(3.0)更快-3.2 秒)用于 GROUP BY 查询。然而,这两种方法都无法实现亚秒级性能。
尽管有这些结果,但探索加速直接查询的替代方法(例如基于列的存储引擎)可能需要权衡其他查询类型。因此,通过触发器维护汇总表成为推荐的解决方案,以确保无论表大小如何都能进行即时计数检索。
要实现此方法,请利用提供的样板代码创建用于书籍插入、删除和更新的触发器。这些触发器在汇总表中维护每个状态下的图书数量,确保对任何状态进行有效的计数检索,从而无需昂贵的逐行扫描。
以上是如何加快大型 MySQL 表中的行计数?的详细内容。更多信息请关注PHP中文网其他相关文章!