Sobes.tech
Middle

Ի՞նչ տեսակների ինդեքսներ կան 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)
Տարածքային Գեոգրաֆիկական տվյալներ Տարածքային ֆունկցիաներ
Կլաստերային Ֆիզիկական կարգավորում Զարուցում ընտրություններ
Ոչ կլաստերային Հեշտացնում է որոնումը ինդեքսավորված սյունակներով =, <, >, <= և այլն