Mysql数据库Innodb引擎读取最大id的方式
InnoDB引擎,12个字段,10万条数据的表,查询最大id,前者比后者更好?
我的理解是Myisam引擎存储了行数,所以读取单个值快,
本例中Innodb引擎,使用了max
函数,原以为order limit
更快,
根据实验结果max
的执行计划 Select tables optimized away
查看执行时间,看不出太大差别,随便用哪种吧。
SELECT max(id) FROM table;
SELECT id FROM table ORDER BY id DESC LIMIT 1;
图一
图二
图三
官方解释:https://dev.mysql.com/doc/refman/8.0/en/explain-output.html
本作品采用《CC 协议》,转载必须注明作者和本文链接
我100万 rows 测试, 看不到很大分别
我理解出现这个问题的原因是id本身是主键,而主键索引是聚簇索引,本身就是排序状态,max和min这类聚合根本不需要额外的优化查询,楼主可以试试max其他字段,我觉得结果应该会不一样