>  기사  >  데이터 베이스  >  오라클의 인덱스 란 무엇입니까?

오라클의 인덱스 란 무엇입니까?

青灯夜游
青灯夜游원래의
2021-12-24 11:25:235875검색

오라클에서 인덱스는 서버가 테이블에서 행을 빠르게 찾을 수 있도록 하는 데이터베이스 구조로, 테이블의 데이터에 대한 액세스 속도를 높이기 위해 테이블의 하나 이상의 열에 구축된 보조 개체입니다. 테이블. 인덱스의 기능: 1. 데이터에 빠르게 액세스합니다. 2. 데이터베이스 성능을 향상할 뿐만 아니라 열 값의 고유성을 보장합니다.

오라클의 인덱스 란 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, Oracle 11g 버전, Dell G3 컴퓨터.

인덱스란 무엇인가요?

오라클에서 인덱스는 서버가 테이블에서 행을 빠르게 찾을 수 있게 해주는 데이터베이스 구조입니다.

  • 인덱스는 테이블의 데이터에 대한 액세스 속도를 높이기 위해 테이블의 하나 이상의 열에 구축된 보조 개체입니다.

  • oracle 저장 인덱스의 구조는 B* 수(균형 트리)이며, 인덱스는 루트 노드, 분기점, 리프 포인트로 구성됩니다. 상위 레벨 인덱스 블록에는 하위 레벨 인덱스의 인덱스 데이터가 포함됩니다. 블록이며 리프 노드에는 인덱스 데이터와 행의 실제 위치에 대한 결정이 포함되어 있습니다.

데이터베이스에 인덱스를 생성하는 기능은 주로 다음과 같습니다.

(1) 데이터에 빠르게 접근합니다.

(2) I/O 작업 감소

(3) 데이터베이스 성능을 향상시킬 뿐만 아니라 열 값의 고유성을 보장할 수도 있습니다.

(4) 테이블 간 참조 무결성 달성

(5) 데이터 검색을 위해 orderby 및 groupby 절을 사용할 때 인덱스를 사용하면 정렬 및 그룹화 시간을 줄일 수 있습니다.

사용 시기:

  • where 뒤 쿼리 조건으로 사용되는 필드는 인덱싱에 적합합니다.

사용하지 않는 경우:

  • 반복되는 필드가 많습니다.

  • 테이블에 쿼리 조건으로 사용되는 필드가 아닙니다.

인덱스 사용 방법:

인덱스 생성:

CREATE [UNIQUE] | [BITMAP] INDEX index_name  --unique表示唯一索引
ON table_name([column1 [ASC|DESC],column2    --bitmap,创建位图索引
[ASC|DESC],…] | [express])
[TABLESPACE tablespace_name]
[PCTFREE n1]                                 --指定索引在数据块中空闲空间
[STORAGE (INITIAL n2)]
[NOLOGGING]                                  --表示创建和重建索引时允许对表做DML操作,默认情况下不应该使用
[NOLINE]
[NOSORT];                                    --表示创建索引时不进行排序,默认不适用,如果数据已经是按照该索引顺序排列的可以使用

예:

상품 테이블 생성:

-- Create table
create table TB_GOODS
(
  goods_id    VARCHAR2(64) not null,
  goods_name  VARCHAR2(256) not null,
  goods_price VARCHAR2(64) not null,
  status      VARCHAR2(1) not null
);

인덱스 생성:

--这里unique可以省略,若省略则索引为非唯一索引
create index UI_tb_goods on tb_goods(goods_name);
--若使用unique则为唯一索引
create unique index un_tb_goods on tb_goods(goods_name);
--括号中添加两列则为组合索引
create unique index un2_tb_goods on tb_goods(goods_name,status);
--括号中添加三列,其顺序没有关系,效果是一样的
create unique index un3_tb_goods on tb_goods(goods_name,goods_price,status);

고유 인덱스의 또 다른 기능은 열이 가질 수 없는 것을 제어하는 ​​것입니다. 같은 값!

쿼리 인덱스:

select * from user_indexes where table_name='表名';
select * from user_ind_columns  where index_name='索引名';

추천 튜토리얼: "Oracle Tutorial"

위 내용은 오라클의 인덱스 란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.