数据库
首页 > 数据库> > mysql 2.5M行慢计数

mysql 2.5M行慢计数

作者:互联网

有一个简单的mysql表与id(主键)和哈希(索引).其他一些列(varchar / int)但不需要对它们进行查询.

我的总表大小约为350MB,行数为2.5M.

SELECT COUNT(*) FROM table LIMIT 1;

大约需要0.5 – 1s.我的innodb缓冲区设置为1GB.我也试过变化(没有改进),如:

SELECT COUNT(id) FROM table LIMIT 1;

SELECT COUNT(*) FROM table WHERE id > 0 LIMIT 1;

单身

SELECT * FROM table WHERE id = 'x' LIMIT 1;

将在1毫秒内返回(localhost mysql).有关改善慢速计数(0.5 – 1s)的任何提示将不胜感激.

解决方法:

你可以找到一个简单的解释here.简而言之,innodb必须进行全表扫描以计算所有行(没有where子句,它将使用索引).
另见this answer.

顺便说一句,我在查询中使用LIMIT 1时看不到任何意义.由于没有group by子句,因此它将始终返回一条记录.

标签:mysql,database,sql,database-performance,performance
来源: https://codeday.me/bug/20190703/1367321.html