数据库优化及执行顺序

                                                    sql执行顺序

        from ---> where ---> group by --->having ---> select --->distinct ---> union --->order by 

sql语句

1.不使用*,用到什么字段就取有用的那些字段

2.where后面null判断

3.where后面数学运算符计算

4.exist代替in 或者not exist代替not in

5.使用>= 替代> (因为>=直接定位到某个数上,而>定位到某个数还得排除这个数,效率低)

6.union和union all 如何不考虑去除重复的话,尽量不要使用union,去除重复影响效率

7.在group by 前把我们所不需要的数据过滤掉

例:select job,avg(sal) from emp where job='CLERK' group by job (效率高)

        select job,avg(sal) from emp group by job having job='CLERK' (效率低)

8.exist > between >in

9.在有索引时候,or不走索引,而union走索引。在这种业务场景中,使用union

10.当模糊查询时候%like% 前面%不走索引,而like% 走索引。

11.当一个表数据量很大,可以分表,横向拆分,当一个表字段内容很大,可以纵向拆表。

12.读写分离,合理选用数据库引擎。

暂时就想到这些,这些足够你在实际开发中使用。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页