SQL查询优化
在数据库SQL性能优化中,查询优化所占比较高。select调优基本还是比较耗时的。所以我整理了一些提示。每当我在写查询语句的时候,总会看看是否满足这些提示清单。
1.要为WHERE 和JOIN后面的字段创建索引。
不过你可以去测试下你这部分基础知识过关了没? the 3-Minute SQL performance test
2.只select你需要的字段,若无必要,勿增实体。
3.限制你的工作数据集的大小
就是限制查询范围,用范围来取代
4.移除不需要的表
本质上跟建议2是一样的,若无必要,勿增实体。什么是不需要的表,就是移除的表不会对你需要的查询的结果产生任何影响。这个工程一旦大了,只要功能正确,很多人就不review自己的SQL脚本了,这就像dead code放在那里碍事儿。
5.移除OUTER JOINS
以上的表是关联的,第二张表最好把NULL用表示“空”的占位符替换。改成以下这样:
这样你不但移除了OUTER JOINS,在意图上也让销售人员没有客户的情况下,找到了标准表述。开发者也不会再写下这样的SQL语句了:ISNULL(customer_id, “No customer yet”).
6.在WHERE和JOIN中移除需要计算的字段
references:
http://www.infoworld.com/article/2604472/database/10-more-dos-and-donts-for-faster-sql-queries.html
https://dzone.com/articles/6-simple-performance-tips-sql
http://www.infoworld.com/article/2628420/database/database-7-performance-tips-for-faster-sql-queries.html