首先SQL书写的目的是为了解决问题,因此只有明白了要解决的问题,才能写出更加高效的SQL语句,才能优雅的解决问题,获得更多的快乐!
在写一个SQL语句的时候不妨像优化器一样思考,问自己以下的这些问题,相信长时间的积累的结果一定可以让自己的SQL变得高效并且优雅
1)为了获取所需要的全部数据需要那些表?
2)其中有表是分区的吗?如果有,分区是如何定义的呢?
3)每张表都有哪些列?
4)每张表中可以引用的索引有哪些?
5)每张表以及其中的列和索引的统计信息都是什么?
6)某些列上有直方图信息吗?(这个东西不知道是什么)
通过以上的问题。以及合理的摆放搜索条件的前后顺序,可以再一定程度上少走弯路,提升SQL的效率
比如用多个and的时候,把最可能为false的放在最前面,如果用or就把最可能为true的放在前面,以及尽可能的多使用and少使用or等等