Ի՞նչ տեսակների ինդեքսներ կան SQL-ում։
sobes.tech AI
Պատասխան AI-ից
-
B-դատարկ (B-Tree): Ամենատարածված տեսակն է: Համապատասխանում է գրեթե բոլոր ընթերցման օպերացիաներին, ներառյալ
WHERE,LIKE,ORDER BY:CREATE INDEX idx_column ON table_name (column_name); -
Hash (Hash): Օպտիմիզացված ճշգրիտ համընկնումների համար (
=): Չի աջակցում տիրույթային հարցումներին կամ դասավորությանը:-- Սինտաքսի օրինակ, կարող է տարբեր լինել տվյալ բազայի կառավարման համակարգից կախված CREATE INDEX idx_column ON table_name USING HASH (column_name); -
Full-Text (Լրիվ տեքստ): Օգտագործվում է մեծ տեքստային դաշտերում (
VARCHAR,TEXT) տեքստի որոնման համար:-- MySQL-ում սինտաքսի օրինակ CREATE FULLTEXT INDEX idx_text ON table_name (text_column); -- PostgreSQL-ում սինտաքսի օրինակ CREATE INDEX idx_text ON table_name USING GIN (to_tsvector('armenian', text_column)); -
Տարածքային (Spatial): Գեոգրաֆիկական տվյալների ինդեքսավորման համար (
POINT,LINE,POLYGON): Օգտագործվում էGEOMETRYկամGEOGRAPHYտիպերով:-- MySQL-ում սինտաքսի օրինակ CREATE SPATIAL INDEX idx_geo ON table_name (spatial_column); -- PostgreSQL-ում սինտաքսի օրինակ CREATE INDEX idx_geo ON table_name USING GIST (spatial_column); -
GIN (Generalized Inverted Index) և GiST (Generalized Search Tree) PostgreSQL-ում: Գնահատվող ինդեքսների տեսակներ, որոնք հարմար են տարբեր խնդիրների համար, ներառյալ լրիվ տեքստային որոնումը, զանգվածների և JSON-ի ինդեքսավորումը:
-
Կլաստերային (Clustered): Ֆիզիկապես կարգավորում է տողերի հերթականությունը աղյուսակում: Մի աղյուսակ կարող է ունենալ միայն մեկ կլաստերային ինդեքս: Հաճախ հիմնված է առաջինական բանալի վրա:
-- Առաջինական բանալի հայտարարելու ժամանակ հաճախ ստեղծվում է կլաստերային ինդեքս CREATE TABLE table_name ( id INT PRIMARY KEY CLUSTERED, -- SQL Server-ում ... ); -
Ոչ կլաստերային (Non-Clustered): Անհատական կառուցվածք, որը պահում է "արժեքի տող (կամ տողերի) + ցուցիչ տողին": Թաբլիկը կարող է ունենալ մի քանի ոչ կլաստերային ինդեքսներ:
Համեմատություն:
| Տիպի ինդեքս | Օգտագործում | Օպերացիաներ |
|---|---|---|
| B-դատարկ | Ընդհանուր, մեծամասնություն տվյալների տեսակների համար | =, <, >, <=, >=, BETWEEN, LIKE (սկիզբ) |
| Hash | Ճշգրիտ համընկնում (=) |
= |
| Լրիվ տեքստ | Տեքստի որոնում | MATCH AGAINST (MySQL), to_tsquery (PostgreSQL) |
| Տարածքային | Գեոգրաֆիկական տվյալներ | Տարածքային ֆունկցիաներ |
| Կլաստերային | Ֆիզիկական կարգավորում | Զարուցում ընտրություններ |
| Ոչ կլաստերային | Հեշտացնում է որոնումը ինդեքսավորված սյունակներով | =, <, >, <= և այլն |