栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

玩转oracle之浅谈SQL优化

玩转oracle之浅谈SQL优化

SQL优化总体原则

使用场景:SQL优化适用于大数据使用时

那些方面进行优化:

索引类型(普通索引,复合索引,全文索引等…)每个类型索引的特性是不一致的,因此使用索引前需要考虑,当前的表结构最佳适用于那个类型索引。

缓存:(数据库缓存,缓存中间件Redis)

锁机制:(读锁,写锁,行锁,页锁等各种类型的锁,oracle排它锁,共享锁)在加锁前,需要考虑当前业务,更加适用于那些锁。

表的设计:考虑三大范式(表的规范严格,但效率降低)因此需要权衡适用。一般在架构设计时,都需要权衡。

架构设计:读写分离(避免对全部数据进行加锁,而只是对少量的写操作加锁),分库分表

9.5万读单独放到读数据库,0.5万写单独放在写数据库中,这样一样,就只需要对0.5万的写操作进行加锁,用于防止并发冲突,而不需要对大量的9.5万读操作进行加锁。

细节:char varchar varchar2 int mediumit ,对于一些相近的类型,需要权衡,那个更合适。 优化细节

基于oracle

不要让Oracle做的太多 jdbc-oracle

如果java调用数据库,能代码实现的尽量代码实现,不要让oracle做的太多。jdbc-oracle

把一些复杂操作交给java,让sql语句尽可能的简单,避免一些复杂查询

尽量减少访问次数

避免使用(*)

需要什么查询什么,哪怕全字段查询(*也需要解析)

避免使用一些消耗资源的操作

distinctunionominusintersectorder by

--尝试使用union all 替代union
--使用exists替代distinct

避免索引失效

在where后面使用了函数,计算,not ,is null,自动转换

--不要select ... from emp where sal > 2500*2;导致失效
--where sal is null;导致失效
--如果sal有索引则以上写法都会使sal索引失效

--select ...from emp where sal = '123'--转换会使索引失效

参考网址:https://www.yuque.com/gi4u62/ve67in/st6mri#be4e412d

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/700042.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号