在一个千万级的数据库查寻中,如何提高查询效率? 1)数据库设计方面: a、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 b、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: sel ...
分类:
数据库 时间:
2016-12-30 19:00:50
阅读次数:
200
执行计划 Oracle执行计划的相关概念: Rowid:系统给oracle数据的每行附加的一个伪列,包含数据表名称,数据库id,存储数据库id以及一个流水号等信息,rowid在行的生命周期内唯一。 Recursive sql:为了执行用户语句,系统附加执行的额外操作语句,譬如对数据字典的维护等。 R ...
分类:
其他好文 时间:
2016-12-27 23:24:08
阅读次数:
230
/*Merge into 详细介绍MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效 ...
分类:
数据库 时间:
2016-12-25 18:05:30
阅读次数:
194
基本原则 避免全表扫描 建立索引 尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理 尽量避免大事务操作,提高系统并发能力 使用基于游标的方法或临时表方法之前,应先寻找基于集的解决方案来解决问题,基于集的方法通常更有效。尽量避免使用游标,因为游标的效率较差。 where 后的条件 ...
分类:
数据库 时间:
2016-12-22 19:52:44
阅读次数:
162
cache buffers lru chain原因高负荷的cache吞吐量,效率差的sql语句(全表扫描,或不正确的index range scans)dbwr写出速度太慢,前台进程花费很多时间持有latch查找free buffer。 cache buffers lru chain保护buffer ...
分类:
系统相关 时间:
2016-12-21 00:05:57
阅读次数:
257
前几天一个客户数据库主实例告警,诊断过程中发现是由一个慢SQL导致的数据库故障,而在排查逐步深入之后却发现这个现象的不可思议。 问题描述 2016年12日09日,大概9点26分左右,一个客户的生产库主实例发出告警,告警信息如下: MySQL实例超过五分钟没有更新。这个告警信息简单解释下就是持续五分钟 ...
分类:
数据库 时间:
2016-12-19 13:36:37
阅读次数:
254
MySQL可以通过EXPLAIN或DESC来查看并分析SQL语句的执行情况,如下需要计算2006年所有公司的销售额,需要关联sales表和company表,并且对money字段做求和操作,相应SQL如下: Sql代码 EXPLAIN SELECT SUM(money) FROM sales s,co ...
分类:
数据库 时间:
2016-12-18 15:32:15
阅读次数:
199
explain语句: 字段解释: type: all(全表扫描) ref() possible_keys: 预测使用什么列做为索引 key: 实际使用的key ref: 参考,引用 rows: 扫描的行数 id: 扫描的行数 extra: 使用什么来定位 ...
分类:
数据库 时间:
2016-12-17 13:56:10
阅读次数:
218
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在 ...
分类:
数据库 时间:
2016-12-11 23:30:10
阅读次数:
282
2016马上要结束了,回顾一下这一年对hbase的学习历程。 1,年初hbase的状态 使用场景:主要是用来存储业务线的mysql表,增量同步到hbase,然后每天晚上全量导入hdfs做离线计算。 hbase集群状态:除了调大了regionserver的heap size。其他基本没有动。经常发生的 ...
分类:
其他好文 时间:
2016-12-11 02:34:04
阅读次数:
204