绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
SQL优化SQL优化
2023-05-29 17:38:10

1概念

在实际项目中,为实现相同的目标,数据库运行效率可能会差距很大,甚至数据库宕机。为了解决这些问题,开发人员及DBA在保证数据质量的前提下,针对表、代码、程序及数据库等各个方面,进行的以提高效率为目的调试操作,即为优化。

2优化方向

1SQL代码优化
2表结构优化:分区表、索引(合理设置)、去除没必要的约束、去除没必要的字段、当前数据与历史数据分开存放(ODS层)
3程序逻辑优化:将复杂的大的步骤拆成简化的小的多个步骤(加中间表或临时表)
4数据库参数优化
5服务器硬件优化

3具体措施

1具体字段代替select*的*
2能用where筛选的不用having(where先运行可以减少后面操作的数据量)
3(not)exists代替(not)in,(伪:exists后的子查询查到一条就可在主查询中继续,in是将子查询所有数据查完才继续)
4in代替or
5表连接代替子查询
1避免在索引列中使用计算、函数、NOT、null、或发生隐式转换(否则索引失效)
2使用>=(<=)来代替>(<),(>或<不走索引)
3用>和<来代替<>,(不等于号<>不走索引)
4instr代替like,(%放在前面的时候如“%jian”一般不走索引)
5复合索引,在筛选时至少要引用到个索引列(否则索引失效)

4查看效率

在PL/SQL Developer中按F5查看执行计划和查询效率如上图

解读:

自右往左:列靠右的是先执行的,如“INDEX UNIQUE SCAN”

自上往下:都靠右的情况下,上面的比下面的先执行

INDEX UNIQUE SCAN:索引扫描

TABLE ACCESS FULL:全表扫描

耗费:指对CPU和IO(磁盘IO读写)的占用


分享好友

分享这个小栈给你的朋友们,一起进步吧。

数据库开发
创建时间:2020-06-17 14:33:07
数据库开发是数据库管理系统(DBMS)和数据库应用软件设计研发的总称,主要是数据运维、参与数据库生产环境的问题优化和解决等方面的事宜
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 小雨滴
    专家
戳我,来吐槽~