mysql 查询百万数据量,采用索引和复合索引

1.百万数据量以上时mysql不带索引查询会非常慢。利用索引和复合索引来逐一提升查询效率。

  ①例如表test   含id name  createtime state 

    ②select * from test where state  ='1' order by createtime desc limit 0,30;

         如果将state设为索引 :CREATE INDEX index_state ON test (state)  结果差不多提升10倍

         如果将 state 和 createtime :CREATE INDEX index_state _createtime ON test(state,createtime);设为复合索引 结果提升近50倍;

2.当然以上表必须近百万的数据量,否则很难出效果。

3.注意:复合索引的顺序 必须与查询的顺序一致,即 查询时 state在前 和createtime   在后,创建复合索引时也要保持同样的顺序,否则复合索引失效。

  还有like'%1'  百分号在左也会导致索引失效,无论是单索引还是复合索引。

 

欢迎留言讨论。。。

 

   

posted @ 2019-11-27 17:15    阅读(533)  评论(0)    收藏  举报