innodb表计数优化

时间:2014-11-04 07:12:10

标签: mysql innodb

我是一个包含10.000.000行的大型innodb表

此查询 SELECT count(id)FROM table_name需要4-6秒才能执行

我需要减少查询执行时间

1)有人可以建议如何在不将表更改为MyIsam

的情况下实现此目的

2)如果我们需要使用MySQL缓存,我们如何在服务器上打开它?

2 个答案:

答案 0 :(得分:3)

说谎申请中的计数。真的,在极少数情况下你需要确切的数字。 您可以从

获得近似行数(但与MyISAM中的选择计数(*)一样快)
SELECT MAX(id) - MIN(id) AS count FROM table

如果您仍然需要确切的数字,您可以使用计数编号创建一个表,并使用触发器ON INSERT和ON DELETE更新它

答案 1 :(得分:0)

如果您的表不经常更改,使用MySQL查询缓存是一个很好的解决方案。

[mysqld]
query_cache_type = 1
query_cache_size = 10M

还要在字段&id; id'上添加索引。如果它不存在此外,如果您在插入或更新时在单独的表中编写应用程序存储计数。它很方便。