标签:安全性 存储 操作符 体验 创建 条件 笛卡尔积 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)复用性高。
......
标签:安全性 存储 操作符 体验 创建 条件 笛卡尔积 sql 用户体验
原文地址:https://www.cnblogs.com/pamne/p/11393377.html