sql优化技巧

1.比较运算符能用‘=’就不用‘<>’

“=”增加了索引的使用几率

2.事先知道只有一条查询结果时,使用‘limit 1’

“LIMIT 1”可以避免全表扫描,找到对应结果就不会再继续扫描了

3. 选择合适的数据类型很重要

能用TINYINT就不用SMALLINT,能用SMALLINT就不用INT,磁盘和内存消耗越小越好

4.大的delete,update or insert查询变成多个小查询

速度快

5. union all 代替union 如果结果集可以重复的话

union  all 不去重 效率高

6. 尽量避免 select *

如果不查询表中所有的列,尽量避免使用 SELECT *,因为它会进行全表扫描,不能有效利用索引,增大了数据库服务器的负担,以及它与应用程序客户端之间的网络IO开销。

7. where 子句里面的列尽量被索引

提高性能

8.join子句里面的列尽量被索引

9.order by 子句里面的列尽量被索引

10.使用 limit 实现分页逻辑好处多

不仅提高了性能,同时减少了不必要的数据库和应用间的网络传输

11.使用EXPLAIN 字去查看执行计划

可以检查索引使用情况以及扫描的行

12.用where 子句代替order by

性能高

13.尽量不使用游标

性能变慢,占用内存

14.索引不是越多越好。oracle超过4个就性能改善不了多少

几篇不错的SQL优化文章:

https://www.cnblogs.com/williamjie/p/9389530.html

https://blog.csdn.net/u010520146/article/details/81161762

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.1 选用适合的ORACLE优化器 4 1.2 基础表的选择 4 1.3 访问TABLE的方式 5 1.4 共享SQL语句 5 1.5 执行路径. 5 1.6 选择最有效率的表名顺序(只在基于规则的优化器有效) 6 1.7 WHERE子句的连接顺序 6 1.8 SELECT子句避免使用 ‘ *‘ 7 1.9 减少访问数据库的次数 7 1.10 使用DECODE函数来减少处理时间 8 1.11 删除重复记录 8 1.12 用TRUNCATE替代DELETE 9 1.13 尽量多使用COMMIT 9 1.14 计算记录条数 9 1.15 用WHERE子句替换HAVING子句 9 1.16 减少对表的查询 10 1.17 通过内部函数提高SQL效率 10 1.18 使用表的别名(ALIAS) 11 1.19 用EXISTS替代IN 12 1.20 用NOT EXISTS替代NOT IN 12 1.21 用表连接替换EXISTS 13 1.22 用EXISTS替换DISTINCT 13 1.23 识别’低效执行’的SQL语句 14 1.24 用索引提高效率 14 1.25 索引的操作 15 1.26 多个平等的索引 16 1.27 等式比较和范围比较 17 1.28 不明确的索引等级 17 1.29 强制索引失效 18 1.30 避免在索引列上使用计算 19 1.31 自动选择索引 20 1.32 避免在索引列上使用NOT 20 1.33 用>=替代> 21 1.34 用UNION替换OR (适用于索引列) 21 1.35 用IN来替换OR 22 1.36 避免在索引列上使用IS NULL和IS NOT NULL 22 1.37 总是使用索引的第一个列 23 1.38 ORACLE内部操作 23 1.39 用UNION-ALL 替换UNION ( 如果有可能的话) 24 1.40 使用提示(HINTS) 25 1.41 用WHERE替代ORDER BY 25 1.42 避免改变索引列的类型. 26 1.43 需要当心的WHERE子句 27 1.44 连接多个扫描 28 1.45 CBO下使用更具选择性的索引 29 1.46 避免使用耗费资源的操作 29 1.47 日期使用 29 1.48 使用显式的游标(CURSORS) 30 1.49 优化EXPORT和IMPORT 30 1.50 分离表和索引 30

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值