代码优化之SQL优化

给你一囗甜甜゛ 提交于 2019-11-28 05:11:51

一、为什么要做sql优化?

      在数据量较大,好的sql语句和合理的表结构,能够呈倍的提高执行效率,从而提高程序的可用性和用户体验性。

二、优化方向

       1.sql语句优化(尽量避免造成全表扫描)

          (1)查询时尽量不要用* 号

          (2)减少子查询和使用in,使用exits

                   例如 select id,name,age from student where id in (select id from javaCouse)

                    select id,name,age from student where id exits (select id from javaCouse)

          (3)尽量不要使用 or(or不走索引),用union进行结果集的合并,加入两个结果集不存在重复数据,那么最好用unionAll

          (4)那些可以过滤掉大量数据的条件必须记录在where子句的末尾

          (5)关联查询时用数据量较小的表做基表和通过where条件进行筛选以减小笛卡尔积

         (6)禁止在WHERE条件的上使用函数或者计算

         (7)禁止使用模糊查询 like '%%',如果需要用到,则尽量使用'%'

         (8)

       2.表结构设计

          (1)尽量减少不必要的关联查询,合理的增加“冗余”字段

          (2)合理的建立主外键,连接查询时用主外键进行连接

          (3)建立数据表时,能用int型的数据的字段尽量用int 型,因为int型的数据作为条件筛选时比字符串的类型快

          (4)在常用字段合理建立索引(折半查找)

          (5)尽量让字段名为not null ,给字段增加默认值,null值需要更多的存储空间,无论是表还是索引中每行中的null的列都需要额外的空间来标识

           (6)对null 的处理时候,只能采用is null或is not null,而不能采用=、in、<、<>、!=、not in这些操作符号。

           (7) 不要在多字段的表中使用TEXT、BLOB类型,用主外键来对应,避免影响其它字段索引效率

 ......

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!