背景
今天我要统计数据表的最新更新时间,有些表数据量特别大,所以统计比较费时间,但是如果使用一下小技巧,就会极大加快查询时间,适合小白的调优手段。
查询更新时间
select max(update_time) from test
大概表的行数为4500万左右,我用max()
函数查询的时候,需要用时98秒多
explain一下就可以看到,他走的是全局搜索,没有用索引,那时间肯定是非常长,统计起来真的非常慢。
但是我们可以简单思考一下,更新时间和主键自增ID是同步往上增加,主键自增ID是带索引。那我们可以根据主键倒叙,然后取第一条,那不就是最新时间了
改进版
select update_time from test order by id desc limit 1
实际测试下来只需要0.1s即可,那是非常的快。
这样他就是走主键索引,而且只需要扫描一行。速度非常的快。
注意
有时候如果简单思考一下,不要因为某些函数实现简单,也不要拘泥于功能的实现,思考用不同的思维实现同样的功能,就能起到非同一般的效果。