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