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' 百分号在左也会导致索引失效,无论是单索引还是复合索引。
欢迎留言讨论。。。
* *** *** *
* * * * * *
** ** **
*人生总是起起落落*
******************

浙公网安备 33010602011771号