oracle学习之索引误区

WBOY
풀어 주다: 2016-06-07 16:22:42
원래의
880명이 탐색했습니다.

大家都知道索引可以提高速率消除排序等,但是实际使用中往往存在滥用的情况,不仅浪费了资源,而且索引还起到了负面的作用。往往大家还不能觉察到这样的错误,导致生产系统故障。 普通索引: 普通索引很简单使用,不过实际上还有一些小的误区。 1.问题:coun

   大家都知道索引可以提高速率消除排序等,但是实际使用中往往存在滥用的情况,不仅浪费了资源,而且索引还起到了负面的作用。往往大家还不能觉察到这样的错误,导致生产系统故障。 普通索引: 普通索引很简单使用,不过实际上还有一些小的误区。

  1.问题:count(1) avg() sum() min() max()只有当索引非空情况下查询才会走索引

  解决方案:count()的时候如果有索引有空值无法解决。而avg() sum() min() max()处理时候加不加索引 is not null,结果一样,但是加索引is not null 时候会走索引扫描速度提高很多。

  2.min(),max()同时查询时候只有索引非空时候才会走索引。

  解决方案:加索引is not null,而且max() min()分开进行查询效率更高。

  3.问题:返回非索引列会产生table access by index rowid)

  解决方案:如果不需要查询非索引列尽量避免,,这样可避免table access by index rowid,实在不行建立组合索引

  4.问题:索引可以提高速度,是不是索引越多越好?

  解决方案:索引并不是越多越好,索引要建的合理,否则插入、更新、删除效率很低。如果某一列有普通索引和组合索引,这时候考虑是不是如果组合索引第一列为普通索引时候,drop普通索引。

  另外也可以考虑现将索引失效,然后等操作完毕后使得索引生效。 当然生产库的操作尽量在业务少的时候做,以免占用资源,对系统造成压力。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿