根本原则是:想尽一切办法多利用索引查询
1、合理的创建索引
1.1、不仅要考虑对where后的字段加索引,也要考虑对group by、order by后的字段加索引。这样可以利用索引表进行查询、分组、排序
1.2、尽可能创建复合索引
2、做必要的聚合处理
2.1、可将多个sql合并为一个大sql进行统一查询,这样减少了数据库连接的创建、销毁,数据库线程的创建、销毁和网络开销
2.2、在必要情况下,可以设置一些冗余字段,避免做过多的关联查询
3、对order by优化
order by排序有两种方式:
using index:order by后的字段加索引,这种效率高,尽可能用这种
using filesort:order by后的字段不全加索引,它有如下两种排序算法。
3.1、尽可能使用using index这种排序方式,也就是对order by后的字段加索引,order by 查询字段。利用索引表进行排序
3.2、如果实在没办法用了using filesort这种方式,则适当改变max_length_for_sort_data的大小使得这个值比select查询出来的字段总大小大,则排序区足够大using filesort底层利用一次扫描算法(这是一种牺牲空间换时间的方法)
4、对
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/153447.html