- 2
- 0
- 约3.59千字
- 约 10页
- 2019-03-25 发布于湖北
- 举报
优化SQL语句的若干方法
1、操作符号: NOT IN操作符
此操作是强列推荐不使用的,因为它不能应用表的索引。
推荐方案:用NOT EXISTS 或(外连接+判断为空)方案代替 IS NULL, , !=, !, !, NOT, NOT IN, NOT LIKE, LIKE %500,
因为他们不走索引全是表扫描。
NOT IN会多次扫描表,
使用EXISTS、NOT EXISTS、IN、LEFT OUTER JOIN来替代,特别是左连接,
而Exists比IN更快,最慢的是NOT操作。
使用in时,在IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,这样可以减少判断的次数
2、注意union和union all的区别。union比union all多做了一步distinct操作。能用union all的情况下尽量不用union。
3、查询时尽量不要返回不需要的行、列。另外在多表连接查询时,尽量改成连接查询,少用子查询。
4、尽量少用视图,它的效率低。对视图操作比直接对表操作慢,可以用存储过程来代替它。特别的是不要用视图嵌套,嵌套视图增加了寻找原始资料的难度。
我们看视图的本质:它是存放在服务器上的被优化好了的已经产生了查询规划的SQL。对单个表检索数据时,不要使用指向多个表的视图,
直接从表检索或者仅仅包含这个表的视图上读,否则增加了不必要的
原创力文档

文档评论(0)