mysql_索引的重要性
2017-08-17 本文已影响17人
古佛青灯度流年
最近遇到个小坑,《数据库表不断插入新数据,但是读表操作却越来越慢》。
原因:
之前的表结构中没有加入所需条件的索引字段,这样每次查询表的时候都是全表扫描;
EXPLAIN SELECT * FROM api_performance WHERE time_stamp='1500899762.0' ORDER BY id DESC ;
![](https://img.haomeiwen.com/i1870882/40a1a5fd82b07818.png)
通过这条sql可以发现,在没建立索引的时候,执行sql需要遍历18075行数据;执行时间为:275ms
解决
在数据库表中建立索引字段:time_stamp,然后在执行sql;
EXPLAIN SELECT * FROM api_performance WHERE time_stamp='1500899762.0' ORDER BY id DESC ;
![](https://img.haomeiwen.com/i1870882/576c06a3ab697e98.png)
通过结果可以发现这时候只需要表里7行数据就能查出我所要的值了;执行时间20ms;
总结
就是一个简单的索引,竟然让查询速度呈现指数级的增长,果然厉害,看来数据库的水还是很深的。。。
@晴天-2017-08-17 11:14:55