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('kyrgyz', 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)
Кеңістіктік Географиялық деректер Кеңістіктік функциялар
Кластерлік Физикалық сұрыптау жолдары Таңдауды жеделдету
Кластерлік емес Іздеуді жеделдету үшін индексі бар бағандар бойынша =, <, >, <= және т.б.