我有一个MySQL数据库,我需要使用COUNT来获取行。
该数据库大约有2000万行,如果我尝试以下操作,则
SELECT COUNT(id) FROM database_rows WHERE database_id = 53;
大约需要 5分钟才能提取该计数。
我认为问题的原因在于WHERE子句,但我需要where子句来计算所需的行,而不是表中的每一行。
SELECT COUNT(id) FROM database_rows;
此查询大约需要 60毫秒才能运行。
我无助地看了在线文章,但他们没有提供足够的解决方案。
有什么方法可以优化此查询,并使其仅花费几秒钟的时间?
谢谢。
答案 0 :(得分:0)
在database_id
列上的索引可能对您有帮助:
CREATE INDEX idx ON database_rows (database_id);
这假定database_id
上没有某种索引,并且值database_id = 53
很少出现。如果这些条件之一都不成立,则添加索引可能无济于事。