1、使用DBV检查数据文件,在cmd执行:dbv file='E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF' blocksize=8192;然后等待检测结果2、检查损坏相关的表: 查到相关的表名3、内部事件,设置在全表扫描时跳过损坏的数据块:ALTER ...
分类:
数据库 时间:
2019-09-06 14:31:14
阅读次数:
142
先来看一个栗子 如果用name索引查找数据需要遍历name字段联合索引树,然后根据遍历出来的主键值去主键索引树里再去查出最终数据,成本比全表扫描还高。 可以用覆盖索引优化,这样只需要遍历name字段的联合索引树就可以拿到所有的结果。 可以看到通过select出的字段是覆盖索引,MySQL底层使用了索 ...
分类:
数据库 时间:
2019-09-06 12:30:39
阅读次数:
108
提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意) 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: ...
分类:
数据库 时间:
2019-09-04 11:39:52
阅读次数:
120
使用复合索引 如果经常执行如上查询,那么建立三个单独索引不如建立一个复合索引,因为三个单独索引通常数据库每次执行只能使用其中一个,虽然这样比不使用索引而进行全表扫描提高了很多效率,但使用复合索引因为索引本身就对应到三个字段上的,效率会有更大提升。 那么为什么数据库只支持一条查询语句只使用一个索引?简 ...
分类:
数据库 时间:
2019-09-03 11:16:36
阅读次数:
83
redis是单线程的,keys查询键类似hbase的全表扫描(也可以理解为select *),大数据量时非常耗时,因此官方给出了scan,使用scan类似数据库分页,可以指定查询多少个元素,官网的说明是scan是一种遍历,只不过可以用count指定每次查询多少个元素 语法:scan cursor m ...
分类:
其他好文 时间:
2019-09-02 23:49:45
阅读次数:
165
处理百万级以上的数据提高查询速度的方法: 1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 3.应尽量避免在 where 子句中对字段进行 n ...
分类:
数据库 时间:
2019-09-02 19:10:16
阅读次数:
88
MySQL当对一列进行操作时,如果in的条件太多,即使这列上有索引,也是导致执行计划不走索引因为搜索的记录数太多,MySQL会认为全表扫描可能会更快对一个表进行删除操作,如果这个列上没有索引,或者执行计划没有走搜索,会导致删除锁住全部的列···sqlmysql>showindexesfromcity1;+-------+------------+----------+------------
分类:
数据库 时间:
2019-08-24 18:26:37
阅读次数:
443
count( )、count(1)、count(主键)、count(字段)的执行效率 在没有where条件的情况下 引擎返回结果会比 快上很多,主要是因为MyISAM会单独记录了表的总行数,而 没有这么做。 为什么没有这么做呢?主要 支持了事务的原因,在事务中不同的版本上查询出来的结果是不一样的。例 ...
分类:
数据库 时间:
2019-08-24 15:36:16
阅读次数:
106
一、基本概念 一个典型的 Hbase Table 表如下: 1.1 Row Key (行键) 是用来检索记录的主键。想要访问 HBase Table 中的数据,只有以下三种方式: + 通过指定的 进行访问; + 通过 Row Key 的 range 进行访问,即访问指定范围内的行; + 进行全表扫描 ...
分类:
其他好文 时间:
2019-08-24 10:19:39
阅读次数:
104
一、为什么要做sql优化? 在数据量较大,好的sql语句和合理的表结构,能够呈倍的提高执行效率,从而提高程序的可用性和用户体验性。 二、优化方向 1.sql语句优化(尽量避免造成全表扫描) (1)查询时尽量不要用* 号 (2)减少子查询和使用in,使用exits 例如 select id,name, ...
分类:
数据库 时间:
2019-08-22 12:48:30
阅读次数:
91