Milyen típusú indexek léteznek SQL-ben?
sobes.tech MI
Válasz az MI-től
-
B-fa (B-tábla): A legelterjedtebb típus. Alkalmas a legtöbb olvasási művelethez, beleértve a
WHERE,LIKE,ORDER BY.CREATE INDEX idx_column ON table_name (column_name); -
Hash (Hash): Pontos egyezésekhez optimalizált (
=). Nem támogatja a tartományi lekérdezéseket vagy a rendezést.-- Szintaxis példa, adatbázis-kezelőtől függően eltérhet CREATE INDEX idx_column ON table_name USING HASH (column_name); -
Teljes szöveg (Full-Text): Nagy szöveges mezőkben (
VARCHAR,TEXT) történő kereséshez.-- Szintaxis példa MySQL-ben CREATE FULLTEXT INDEX idx_text ON table_name (text_column); -- Szintaxis példa PostgreSQL-ben CREATE INDEX idx_text ON table_name USING GIN (to_tsvector('magyar', text_column)); -
Térbeli (Spatial): Geográfiai adatok indexeléséhez (pontok, vonalak, sokszögek). Olyan adattípusokkal használják, mint a
GEOMETRYvagyGEOGRAPHY.-- Szintaxis példa MySQL-ben CREATE SPATIAL INDEX idx_geo ON table_name (spatial_column); -- Szintaxis példa PostgreSQL-ben CREATE INDEX idx_geo ON table_name USING GIST (spatial_column); -
GIN (Generalized Inverted Index) és GiST (Generalized Search Tree) PostgreSQL-ben: Rugalmas indextípusok, különféle feladatokra, beleértve a teljes szöveg keresést, tömbök és JSON indexelést.
-
Klaszterezett (Clustered): Meghatározza a sorok fizikai sorrendjét a táblában. Egy táblának csak egy klaszterezett indexe lehet. Gyakran az elsődleges kulcs alapján.
-- Elsődleges kulcs megadása esetén gyakran jön létre klaszterezett index CREATE TABLE table_name ( id INT PRIMARY KEY CLUSTERED, -- SQL Server ... ); -
Nem klaszterezett (Non-Clustered): Külön struktúra, amely a "oszlopérték (vagy oszlopok) + mutató a sorra" párokat tárolja. Egy táblának több nem klaszterezett indexe lehet.
Összehasonlítás:
| Index típus | Alkalmazás | Műveletek |
|---|---|---|
| B-fa | Általános, legtöbb adattípushoz | =, <, >, <=, >=, BETWEEN, LIKE (kezdő) |
| Hash | Pontos egyezés (=) |
= |
| Teljes szöveg | Szöveg keresése | MATCH AGAINST (MySQL), to_tsquery (PostgreSQL) |
| Térbeli | Geográfiai adatokhoz | Térbeli függvények |
| Klaszterezett | Fizikai sorrend a sorok között | Gyorsítja a tartományi lekérdezéseket |
| Nem klaszterezett | Gyorsítja a keresést indexelt oszlopokon | =, <, >, <= stb. |