mysql - Mysql Innodb "select count(*)" 性能
问题描述
我有一个包含 1394971 条记录的表,是否可以优化 count(*) 性能?
mysql aDB -e 'select * from Table limit 1;'
0m0.034s
mysql aDB -e 'select count(*) from Table'
0m0.505s
现在,从mysql 计数性能和https://www.percona.com/blog/2006/12/01/count-for-innodb-tables/:
因此,如果您有类似 SELECT COUNT(*) FROM USER 之类的查询,MyISAM(MEMORY 和其他一些)表会更快,因为它们只会从存储值中读取表中的行数。然而,Innodb 将需要执行全表扫描或全索引扫描,因为它没有这样的计数器
我不想创建一个额外的“计数器”表。
我应该使用其他引擎吗?哪一个?我不想使用 MyISAM。这可能与其他数据库?