优化器的基础:1、Oracle里的优化器:优化器是Oracle数据库中内置的一个核心子系统,优化器的目的就是按照一定的判断原则来得到它认为目标sql在当前情形下最高效的执行路径,也就是说是为了得到目标sql的执行计划。Oracle数据库的优化器分为:RBO和CBO两种类型:RBO:基于规则..
分类:
数据库 时间:
2017-08-01 21:50:49
阅读次数:
190
--绑定变量OLTP系统中,我们总是希望使用绑定变量将sql语句共享在library cache中,Oracle将根据LRU算法将该语句的相关信息保存在library cache中,这样只有在sql语句第一次被加载时会发生hard parse,之后如果sql语句在library cache中,将会发 ...
分类:
数据库 时间:
2017-07-26 11:33:16
阅读次数:
221
前言今天老K继续与大家分享第九期。周末老K宅在家观战了两局精彩的“人狗”大战。老K既算不上科技迷,也算不上围棋迷,不过对此颇有感触:阿尔法狗不过是通过左右互博的方式不断学习围棋,然而依赖其最优的学习算法(学习方法)却能再短短的数月之内达到人类围棋水平的最顶端;..
分类:
数据库 时间:
2017-07-25 15:57:34
阅读次数:
186
网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断... ...
分类:
数据库 时间:
2017-07-25 10:19:36
阅读次数:
203
本文记录的是,在数据处理过程中,遇到了一个sql执行很慢,对一些大型的hive表还会出现OOM,一步一步通过参数的设置和sql优化,将其调优的过程。 先上sql 可以看到这个sql由1个join,一个去重语句,组成,这两种操作都是很耗费资源的。 1、对链接操作,小表放在链接左边。 这是一个老生常谈的 ...
分类:
数据库 时间:
2017-07-23 11:24:09
阅读次数:
319
一、大表的大数据量修改 问题: 1、大量的行级锁,长时间阻塞 2、主从延时,大批数据不一致 解决方法: 分批次修改 二、大表的表结构修改 问题:长时间锁表 解决方法: 1、从库修改,主从切换,主库修改 (主从切换有风险) 2、建新表; 旧表数据导入到新表;旧表加触发器把新数据同步到新表;旧表加排他锁 ...
分类:
数据库 时间:
2017-07-20 10:04:39
阅读次数:
170
前言 有人反馈之前几篇文章过于理论缺少实际操作细节。这篇文章就多一些可操作性的内容吧。 注:这篇文章是以 MySQL 为背景,非常多内容同一时候适用于其它关系型数据库,须要有一些索引知识为基础。 优化目标 1.降低 IO 次数 IO永远是数据库最easy瓶颈的地方,这是由数据库的职责所决定的,大部分 ...
分类:
数据库 时间:
2017-07-19 23:19:15
阅读次数:
195
有人的地方就有江湖,数据库也是,sql优化这个问题,任重道远,我们总是禁不住有烂sql。怎么办呢,还好各大数据库都有相关烂sql的收集功能,而mysql的慢查询收集也是异曲同工,配合分析sql的执行计划,这个优化就有了搞头了。开启mysql慢查询日志1.查看当前慢查询设置情况#查看..
分类:
数据库 时间:
2017-07-19 17:56:06
阅读次数:
733
一、百万级数据库优化方案1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num i... ...
分类:
数据库 时间:
2017-07-19 14:45:50
阅读次数:
258
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在n ...
分类:
数据库 时间:
2017-07-19 10:34:26
阅读次数:
162