摘要:
一、IN、OR、 EXISTS EXISTS要远比IN的效率高。里面关系到full table scan和range scan。几乎将所有的IN操作符子查询改写为使用EXISTS的子查询。IN、OR子句常会使用工作表,使索引失效。如果不产生大量重复值,可以考虑把子句拆开。拆开的子句中应该包含索引。举例说明:在嵌套查询中,对表的顺序存取对查询效率可能产生致命的影响。比如采用顺序存取策略,一个嵌套3层的查询,如果每层都查询1000行,那么这个查询就要查询10亿行数据。避免这种情况的主要方法就是对连接的列进行索引。例如,两个表:学生表(学号、姓名、年龄……)和选课表(学号、课程号、成绩)。如果两个表 阅读全文
摘要:
一、关键字段建立索引 关键字段说明:主键、外键、在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引。 建索引不局限与单个列索引,当查询中经常包含多个列时可考虑建组合索引、非聚集索引。 约束:条件表达式中经常用到的不同值较多的列上建立检索,在不同值少的列上不要建立索引。比如在雇员表的“性别”列上只有“男”与“女”两个不同值,因此就无必要建立索引。如果建立索引不但不会提高查询效率,反而会严重降低更新速度。 经验:索引的追求的目标的提高速度,但不是越多的索引就越好。参考一下URL,创建缺失索引(未创建、未考虑到)、删除当前数据库中使用较少的索引或者写入次数大于读取次数 阅读全文