Sobes.tech
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';