Middle
Ako sa používa index v veľkej tabuľke?
sobes.tech AI
Odpoveď od AI
Index v veľkej tabuľke výrazne zrýchľuje operácie výberu dát (SELECT) a tiež operácie zmien (UPDATE, DELETE) pri použití podmienky WHERE s indexovanými stĺpcami. Bez indexu musí databáza prehľadávať celú tabuľu (full table scan), čo je pri veľkých objemoch dát veľmi pomalé.
Pri použití indexu databáza najskôr odkazuje na štruktúru indexu (zvyčajne B-strom), ktorá je oveľa menšia ako samotná tabuľa a obsahuje zoradené odkazy na riadky dát. Po nájdení potrebných odkazov v indexe databáza rýchlo priamo pristupuje k požadovaným riadkom tabuľky.
Dôležité:
- Indexy zaberajú miesto na disku.
- Vytváranie a údržba indexov pri operáciách vkladania (
INSERT) a aktualizácie (UPDATE) vyžaduje ďalšie zdroje. - Príliš veľa indexov alebo nesprávne zvolené indexy môžu spomaliť operácie zápisu.
Príklad vytvorenia indexu v Ruby on Rails:
# Vytvorenie indexu na stĺpci 'email' v tabuľke 'users'
add_index :users, :email
# Vytvorenie unikátneho indexu na stĺpci 'username'
add_index :users, :username, unique: true
# Vytvorenie zloženého indexu na stĺpcoch 'user_id' a 'product_id'
add_index :orders, [:user_id, :product_id]
Príklad použitia indexu v SQL (vykonáva databáza):
-- Dotaz, ktorý bude využívať index na stĺpci email
SELECT * FROM users WHERE email = 'test@example.com';