大多数情况下,oracle数据库内置的查询优化策略还是很成功的,但偶尔也有糊涂的时候,即使有索引,也会做全表扫描,可以参考以下语句的写法,强制让select语句使用索引。(注意:走索引不一定是最优的,不走索引不一定有问题,具体问题具体分析,看执行计划)例如:select /*+INDEX(xe em...
分类:
数据库 时间:
2015-10-09 13:44:28
阅读次数:
205
原文:SQL SERVER中关于OR会导致索引扫描或全表扫描的浅析 在SQL SERVER的查询语句中使用OR是否会导致不走索引查找(Index Seek)或索引失效(堆表走全表扫描 (Table Scan)、聚集索引表走聚集索引扫描(Clustered Index Seek))呢?是否所有情况都是...
分类:
数据库 时间:
2015-08-03 01:10:31
阅读次数:
197
在SQL SERVER的查询语句中使用OR是否会导致不走索引查找(Index Seek)或索引失效(堆表走全表扫描 (Table Scan)、聚集索引表走聚集索引扫描(Clustered Index Seek))呢?是否所有情况都是如此?又该如何优化呢? 下面我们通过一些简单的例子来分析理解这些现象...
分类:
数据库 时间:
2015-08-02 19:44:06
阅读次数:
137
Oracle数据库操作中,为什么有时一个表的某个字段明明有索引,当观察一些语的执行计划确不走索引呢?如何解决呢?本文我们主要就介绍这部分内容,接下来就让我们一起来了解一下 .不走索引大体有以下几个原因: 你在Instance级别所用的是all_rows的方式 你的表的统计信息(最可能的原因) 你的表...
分类:
数据库 时间:
2015-07-21 11:56:35
阅读次数:
178
有一点要注意的是即便建立了索引,如果sql功力不足,查询也是不走索引的。1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:sele...
分类:
数据库 时间:
2015-07-05 23:53:06
阅读次数:
151
sphinx
结构图:
安装sphinx软件
如何搜索包含北京的记录?
Select * from news where content like ‘%北京%’
这样有什么弊端?
1.不走索引,特别慢
如果是100万条记录?如果是1000万条记录?
2.搜索不准确,只能搜标题
Sphinx原理,如果搜索北京
Sphinx临时文件,特别快
i...
分类:
其他好文 时间:
2015-05-09 13:28:11
阅读次数:
93
如果保函null字段是数字isnull和isnotnull都不走索引如果保函null字段是字符isnull不走索引和isnotnull会走索引字符类型可以默认‘‘数字类型可以默认01、数据库为5.6.0版本测试mysql>select@@version;+------------+|@@version|+------------+|5.6.10-log|+------------+1row..
分类:
数据库 时间:
2015-04-14 20:04:32
阅读次数:
203
EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或FalseEXISTS 指定一个子查询,检测行的存在。EXISTS与IN的使用效率的问题,通常情况下采用exists要比in效率高,因为IN不走索引,但要看实际情况具体使用:IN适合于外表大而内表小...
分类:
数据库 时间:
2015-02-03 12:44:56
阅读次数:
143
【SQL】 使用注意点一. 索引 1. 常用的搜索条件,都建议加上索引,但状态列除外(该列只有0,1或几个值,不需要加索引,因为没效果) 2. 查询时, 索引列不能做函数处理,会不走索引 3. 多个条件时,可以使用联合索引 4. 聚集索引,主键,建议用自增列 5. 索引列如果长度是固定的,...
分类:
数据库 时间:
2014-11-16 18:34:36
阅读次数:
288