Maison >base de données >Oracle >Qu'est-ce qu'un index dans Oracle

Qu'est-ce qu'un index dans Oracle

青灯夜游
青灯夜游original
2021-12-24 11:25:235995parcourir

Dans Oracle, un index est une structure de base de données qui permet au serveur de trouver rapidement une ligne dans une table. Il s'agit d'un objet auxiliaire construit sur une ou plusieurs colonnes de la table, dans le but d'accélérer l'accès aux données dans la table. tableau. Les fonctions des index : 1. Accéder rapidement aux données ; 2. Cela peut non seulement améliorer les performances de la base de données, mais également garantir l'unicité des valeurs des colonnes, etc.

Qu'est-ce qu'un index dans Oracle

L'environnement d'exploitation de ce tutoriel : système Windows 7, version Oracle 11g, ordinateur Dell G3.

Qu'est-ce qu'un indice ?

Dans Oracle, un index est une structure de base de données qui permet au serveur de retrouver rapidement une ligne dans une table.

  • Un index est un objet auxiliaire construit sur une ou plusieurs colonnes d'un tableau, dans le but d'accélérer l'accès aux données du tableau.

  • oracle La structure de l'index de stockage est un nombre B* (arbre équilibré), et l'index est composé d'un nœud racine, d'un point de branchement et d'un point feuille. Le bloc d'index de niveau supérieur contient les données d'index de l'index de niveau inférieur. bloc, et le nœud feuille contient les données d'index et la détermination du rowid de la position réelle de la ligne.

La création d'index dans la base de données a principalement les fonctions suivantes :

(1) Accès rapide aux données.

(2) Réduire les opérations d'E/S

(3) Cela peut non seulement améliorer les performances de la base de données, mais également garantir l'unicité des valeurs des colonnes.

(4) Atteindre l'intégrité référentielle entre les tables

(5) Lors de l'utilisation des clauses orderby et groupby pour la récupération de données, l'utilisation d'index peut réduire le temps de tri et de regroupement.

Quand utiliser :

  • Les champs utilisés comme conditions de requête après où conviennent à l'indexation.

Quand ne pas utiliser :

  • Il y a de nombreux champs répétés ;

  • n'est pas un champ utilisé comme condition de requête après où

  • Il y a moins d'enregistrements dans la table.

Comment utiliser l'index :

Créer un index :

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];                                    --表示创建索引时不进行排序,默认不适用,如果数据已经是按照该索引顺序排列的可以使用

Par exemple,

Créer une table de produits :

-- 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
);

Créer un index :

--这里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);

Une autre fonction de l'index unique est de contrôler que la colonne ne peut pas avoir la même valeur !

Index de requête :

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

Tutoriel recommandé : "Tutoriel Oracle"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn