Pagkakaiba sa Pagitan ng Cluster at Non Cluster Index

Pagkakaiba sa Pagitan ng Cluster at Non Cluster Index
Pagkakaiba sa Pagitan ng Cluster at Non Cluster Index

Video: Pagkakaiba sa Pagitan ng Cluster at Non Cluster Index

Video: Pagkakaiba sa Pagitan ng Cluster at Non Cluster Index
Video: Series and Parallel Circuits | Electricity | Physics | FuseSchool 2024, Hulyo
Anonim

Cluster vs Non Cluster Index

Ang mga index ay napakahalaga sa anumang database. Ginagamit ang mga ito upang mapabuti ang pagganap ng pagkuha ng data mula sa mga talahanayan. Ang mga ito ay lohikal at pisikal na independyente sa data sa nauugnay na mga talahanayan. Samakatuwid, ang mga index ay maaaring i-drop, muling likhain at muling itayo nang hindi naaapektuhan ang data ng mga base table. Ang Oracle server ay maaaring awtomatikong mapanatili ang mga index nito nang walang anumang paglahok ng isang DBA, kapag ang mga nauugnay na talahanayan ay ipinasok, na-update at tinanggal. Mayroong ilang mga uri ng index. Narito, ang ilan sa mga ito.

1. B-tree index

2. Mga index ng bitmap

3. Mga index na nakabatay sa function

4. Mga reverse-key index

5. B-tree cluster index

Ano ang Non – Cluster Index?

Mula sa mga uri ng index sa itaas, ang mga sumusunod ay mga hindi naka-cluster na index.

• B-tree index

• Bitmap index

• Function based index

• Reverse-key index

Ang B-tree index ay ang pinakamalawak na ginagamit na uri ng index ng mga database. Kung ang CREATE INDEX command ay inisyu sa database, nang hindi tinukoy ang isang uri, ang Oracle server ay gagawa ng b-tree index. Kapag ginawa ang isang b-tree index sa isang partikular na column, iniimbak ng oracle server ang mga value ng column at nagpapanatili ng reference sa aktwal na row ng table.

Bitmap index ay ginawa kapag ang column data ay hindi masyadong pumipili. Ibig sabihin, mababa ang cardinality ng column data. Espesyal na idinisenyo ang mga ito para sa mga warehouse ng data, at hindi magandang gumamit ng mga bitmap index sa mataas na naa-update o transactional na mga talahanayan.

Ang mga functional index ay nagmumula sa Oracle 8i. Dito, ginagamit ang isang function sa naka-index na column. Samakatuwid, sa isang functional index, ang data ng column ay hindi pinagsunod-sunod sa normal na paraan. Pinag-uuri-uri nito ang mga halaga ng mga column pagkatapos ilapat ang function. Ang mga ito ay lubhang kapaki-pakinabang kapag ang WHERE close ng piling query ay ginagamit ng isang function.

Ang Reverse-key index ay isang napaka-interesante na uri ng index. Ipagpalagay natin na ang isang column ay naglalaman ng maraming natatanging string data tulad ng 'cityA', 'cityB', 'cityC'…atbp. Ang lahat ng mga halaga ay may pattern. Ang unang apat na character ay pareho at ang mga susunod na bahagi ay binago. Kaya kapag ginawa ang REVERSE key index sa column na ito, babaligtarin ng Oracle ang string at ire-restore ito sa isang b-tree index.

Ang mga nabanggit na uri ng index ay NON-CLUSTERED na mga index. Ibig sabihin, iniimbak ang naka-index na data sa labas ng talahanayan, at pinapanatili ang isang pinagsunod-sunod na reference sa talahanayan.

Ano ang Clustered Index?

Ang Clustered index ay isang espesyal na uri ng mga index. Nag-iimbak ito ng data ayon sa paraan ng pisikal na pag-iimbak ng data ng talahanayan. Kaya, hindi maaaring magkaroon ng maraming clustered index para sa isang table. Ang isang table ay maaaring magkaroon lamang ng isang clustered index.

Ano ang pagkakaiba ng Clustered at Non-Clustered Index?

1. Maaaring magkaroon lamang ng isang clustered index ang talahanayan, ngunit maaaring magkaroon ng hanggang 249 na hindi clustered na index sa isang table.

2. Awtomatikong nagagawa ang clustered index kapag may ginawang primary key, ngunit isang non-clustered index ang nagagawa kapag may ginawang unique key.

3. Ang lohikal na pagkakasunud-sunod ng clustered index ay tumutugma sa pisikal na pagkakasunud-sunod ng data ng talahanayan, ngunit sa mga hindi naka-cluster na index, ito ay hindi.

Inirerekumendang: