Millised indeksitüübid on SQL-is olemas?
sobes.tech AI
Vastus AI-lt
-
B-puu (B-täis): Kõige levinum tüüp. Sobib enamikuks lugemisoperatsioonidest, sealhulgas
WHERE,LIKE,ORDER BY.CREATE INDEX idx_column ON table_name (column_name); -
Hash (Hash): Optimeeritud täpsete vasteide jaoks (
=). Ei toeta vahemiku päringuid ega sorteerimist.-- Süntaksi näide, võib sõltuvalt andmebaasisüsteemist erineda CREATE INDEX idx_column ON table_name USING HASH (column_name); -
Täistekst (Full-Text): Kasutatakse suure tekstivälja otsimiseks (
VARCHAR,TEXT).-- MySQL-i süntaksi näide CREATE FULLTEXT INDEX idx_text ON table_name (text_column); -- PostgreSQL-i süntaksi näide CREATE INDEX idx_text ON table_name USING GIN (to_tsvector('estonian', text_column)); -
Ruumi (Spatial): Geograafiliste andmete indekseerimiseks (
POINT,LINE,POLYGON). Kasutatakse andmetüüpidega naguGEOMETRYvõiGEOGRAPHY.-- MySQL-i süntaksi näide CREATE SPATIAL INDEX idx_geo ON table_name (spatial_column); -- PostgreSQL-i süntaksi näide CREATE INDEX idx_geo ON table_name USING GIST (spatial_column); -
GIN (Generalized Inverted Index) ja GiST (Generalized Search Tree) PostgreSQL: Paindlikud indeksitüübid, sobivad erinevate ülesannete jaoks, sealhulgas täistekstiline otsing, massiivide ja JSON-i indeksid.
-
Klastriline (Clustered): Määrab füüsilise järjekorra ridadest tabelis. Üks tabel võib omada ainult ühte klastrilist indeksit. Sageli põhineb esmase võtme väärtusel.
-- Eeldusel, et määratletud esmase võti, sageli luuakse klastriline indeks CREATE TABLE table_name ( id INT PRIMARY KEY CLUSTERED, -- SQL Serveris ... ); -
Mitteklaastriline (Non-Clustered): Eraldise struktuur, mis salvestab paare "veeru väärtus (või veerud) + viit tabeli ridadele". Tabel võib omada mitut mitteklaastrilist indeksit.
Võrdlus:
| Indeksi tüüp | Rakendus | Operatsioonid |
|---|---|---|
| B-puu | Üldine, enamik andmetüüpe | =, <, >, <=, >=, BETWEEN, LIKE (algus) |
| Hash | Täpne vaste (=) |
= |
| Täistekst | Teksti otsing | MATCH AGAINST (MySQL), to_tsquery (PostgreSQL) |
| Ruumi | Geograafilised andmed | Ruumi funktsioonid |
| Klastriline | Füüsiline järjekord ridadest | Kiirendab vahemiku valikuid |
| Mitteklaastriline | Kiirendab otsingut indekseeritud veergudel | =, <, >, <= jms. |