Dalam Oracle, indeks ialah struktur pangkalan data yang membolehkan pelayan mencari baris dalam jadual dengan cepat Ia adalah objek tambahan yang dibina pada satu atau lebih lajur jadual, dengan tujuan mempercepatkan akses kepada data dalam jadual. Fungsi indeks: 1. Akses data dengan pantas 2. Ia bukan sahaja dapat meningkatkan prestasi pangkalan data, tetapi juga memastikan keunikan nilai lajur, dsb.
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi Oracle 11g, komputer Dell G3.
Apakah itu indeks?
Dalam Oracle, indeks ialah struktur pangkalan data yang membolehkan pelayan mencari baris dalam jadual dengan cepat.
Indeks ialah objek tambahan yang dibina pada satu atau lebih lajur jadual, dengan tujuan mempercepatkan akses kepada data dalam jadual.
Struktur indeks penyimpanan oracle ialah nombor B* (pokok seimbang), dan indeks terdiri daripada nod akar, titik cawangan dan titik daun Blok indeks peringkat atas mengandungi data indeks blok indeks peringkat bawah , nod daun mengandungi data indeks dan rowid yang menentukan lokasi sebenar baris.
Mencipta indeks dalam pangkalan data terutamanya mempunyai fungsi berikut:
(1) Akses pantas kepada data.
(2) Kurangkan operasi I/O
(3) Ia bukan sahaja dapat meningkatkan prestasi pangkalan data, tetapi juga memastikan keunikan nilai lajur.
(4) Laksanakan integriti rujukan antara jadual
(5) Apabila menggunakan klausa orderby dan groupby untuk mendapatkan data, menggunakan indeks boleh mengurangkan masa pengisihan dan pengumpulan.
Bila hendak digunakan:
Medan yang digunakan sebagai syarat pertanyaan selepas tempat yang sesuai untuk pengindeksan.
Bila tidak boleh digunakan:
Terdapat banyak medan berulang
Medan yang tidak digunakan sebagai syarat pertanyaan selepas di mana;
Terdapat lebih sedikit rekod dalam jadual.
Buat indeks:
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]; --表示创建索引时不进行排序,默认不适用,如果数据已经是按照该索引顺序排列的可以使用
Contohnya,
Cipta Jadual produk:
-- 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 );
Cipta indeks:
--这里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);
Satu lagi fungsi indeks unik adalah untuk mengawal bahawa lajur tidak boleh mempunyai nilai yang sama!
Indeks pertanyaan:
select * from user_indexes where table_name='表名'; select * from user_ind_columns where index_name='索引名';
Tutorial yang disyorkan: "Tutorial Oracle"
Atas ialah kandungan terperinci Apakah indeks dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!