代码优化之SQL优化

Posted pamne

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码优化之SQL优化相关的知识,希望对你有一定的参考价值。

一、为什么要做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)对null 的处理时候,只能采用is null或is not null,而不能采用=、in、<、<>、!=、not in这些操作符号。

       2.表结构设计

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

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

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

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

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

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

      3.建立存储过程

        (1)存储过程只在创建时进行编译,sql语句则每次执行都需要编译。能提高数据库执行速度。

        (2)复用性高。

   (3)安全性高,可指定存储过程的使用权。

 ......

以上是关于代码优化之SQL优化的主要内容,如果未能解决你的问题,请参考以下文章

SQL性能优化策略之索引优化方法

性能优化之Java(Android)代码优化

性能优化之Java(Android)代码优化

SQL Server优化之SQL语句优化

如何做SQL优化?优化SQL语句,提高SQL查询效率。Effective MySQL之SQL语句最优化

[Android] Android开发优化之——从代码角度进行优化