Sobes.tech
Middle

SQLda qanday indeks turlari mavjud?

sobes.tech AI

AIdan javob

  • B- dara (B- dara): Eng ko‘p ishlatiladigan tur. Ko‘pchilik o‘qish operatsiyalari uchun mos, jumladan WHERE, LIKE, ORDER BY.

    CREATE INDEX idx_column ON table_name (column_name);
    
  • Hash (Hash): Aniq mosliklar (=) uchun optimallashtirilgan. Oralash yoki tartiblashni qo‘llab-quvvatlamaydi.

    -- Sintaksis misoli, SGBDga qarab farq qilishi mumkin
    CREATE INDEX idx_column ON table_name USING HASH (column_name);
    
  • To‘liq matn (Full-Text): Katta matn maydonlarida (VARCHAR, TEXT) qidirish uchun ishlatiladi.

    -- MySQLda sintaksis misoli
    CREATE FULLTEXT INDEX idx_text ON table_name (text_column);
    -- PostgreSQLda sintaksis misoli
    CREATE INDEX idx_text ON table_name USING GIN (to_tsvector('russian', text_column));
    
  • Raqamli (Spatial): Geografik ma’lumotlarni indekslash uchun. GEOMETRY yoki GEOGRAPHY kabi ma’lumot turlari bilan ishlatiladi.

    -- MySQLda sintaksis misoli
    CREATE SPATIAL INDEX idx_geo ON table_name (spatial_column);
    -- PostgreSQLda sintaksis misoli
    CREATE INDEX idx_geo ON table_name USING GIST (spatial_column);
    
  • GIN (Umumiy Invertlangan Indeks) va GiST (Umumiy Qidiruv Daraxti) PostgreSQLda: Moslashuvchan indeks turlari, turli vazifalar uchun, jumladan to‘liq matn qidiruvi, massivlar va JSON indekslash uchun.

  • Klasternash (Clustered): Jadvaldagi satrlarning jismoniy tartibini belgilaydi. Bir jadval faqat bitta klaster indeksga ega bo‘lishi mumkin. Ko‘pincha asosiy kalitga asoslangan.

    -- Asosiy kalitni e’lon qilishda, odatda klaster indeks yaratiladi
    CREATE TABLE table_name (
        id INT PRIMARY KEY CLUSTERED, -- SQL Serverda
        ...
    );
    
  • Neklasternash (Non-Clustered): Alohida ma’lumotlar tuzilmasi bo‘lib, "sutun qiymati (yoki ustunlar) + satrga ko‘rsatkich" juftliklarini saqlaydi. Bir jadvalda ko‘p neklasternash indekslari bo‘lishi mumkin.

Taqqoslash:

Indeks turi Qo‘llanilishi Operatsiyalar
B-dara Umumiy, ko‘p ma’lumot turlari =, <, >, <=, >=, BETWEEN, LIKE (boshlanish)
Hash Aniq moslik (=) =
To‘liq matn Matn qidiruvi MATCH AGAINST (MySQL), to_tsquery (PostgreSQL)
Raqamli Geografik ma’lumotlar Geospatial funksiyalar
Klasternash Satrlarning jismoniy tartibi Oralash tanlovini tezlashtiradi
Neklasternash Indekslangan ustunlarda qidirishni tezlashtiradi =, <, >, <= va boshqalar