我在MySQL 8中有一个SQL查询,用于获取列中的最新日期,以及表中所有记录的计数:
SELECT max(ModificationTimestamp) as lastUpdate, count(*) as total FROM mls_data;
表中大约有300万行,执行该查询几乎需要30秒。
如何使这个查询执行得更快?索引?配置设置?增加InnoDB缓冲区?
发布于 2022-05-19 00:13:02
只需在该列上添加一个索引,MAX()查询就会很快:
create index modificationtimestamp_idx on mls_data(ModificationTimestamp)但是,您的问题可能是使用count(*),所以使用和不带count(*)进行测试。如果不需要实时结果,您可以执行此操作,并创建一个计划,如果不需要实时结果,则每5分钟更新一次stats表,其中包含count和max。
https://stackoverflow.com/questions/72296128
复制相似问题