Middle
Jak se používá index ve velké tabulce?
sobes.tech AI
Odpověď od AI
Index ve velkým tabulkou výrazně urychluje operace výběru dat (SELECT) a také operace změn (UPDATE, DELETE) při použití podmínky WHERE s indexovanými sloupci. Bez indexu musí databáze prohledat celou tabulku (full table scan), což je u velkých objemů dat velmi pomalé.
Použitím indexu se databáze nejprve odkazuje na strukturu indexu (obvykle B-strom), která je mnohem menší než samotná tabulka a obsahuje seřazené odkazy na řádky dat. Po nalezení potřebných odkazů v indexu databáze rychle přímo přistupuje k požadovaným řádkům tabulky.
Důležité:
- Indexy zabírají místo na disku.
- Vytváření a údržba indexů při operacích vkládání (
INSERT) a aktualizace (UPDATE) vyžaduje další zdroje. - Příliš mnoho indexů nebo nesprávně zvolené indexy mohou zpomalit zápisové operace.
Příklad vytvoření indexu v Ruby on Rails:
# Vytvoření indexu na sloupci 'email' v tabulce 'users'
add_index :users, :email
# Vytvoření unikátního indexu na sloupci 'username'
add_index :users, :username, unique: true
# Vytvoření složeného indexu na sloupcích 'user_id' a 'product_id'
add_index :orders, [:user_id, :product_id]
Příklad použití indexu v SQL (provádí databáze):
-- Dotaz, který bude využívat index na sloupci email
SELECT * FROM users WHERE email = 'test@example.com';