Cum este utilizat un index într-un tabel mare?
sobes.tech AI
Răspuns de la AI
Indexul într-un tabel mare accelerează semnificativ operațiunile de selectare a datelor (SELECT), precum și operațiunile de modificare (UPDATE, DELETE) atunci când se utilizează condiția WHERE cu coloane indexate. Fără index, baza de date trebuie să scaneze întregul tabel (scanare completă a tabelului), ceea ce este foarte lent pentru volume mari de date.
Prin utilizarea unui index, baza de date accesează mai întâi structura indexului (de obicei un arbore B), care este mult mai mică decât tabelul însuși și conține referințe ordonate către rândurile de date. Găsind referințele necesare în index, baza de date accesează rapid direct rândurile solicitate.
Important:
- Indexurile ocupă spațiu pe disc.
- Crearea și întreținerea indexurilor în timpul operațiunilor de inserare (
INSERT) și actualizare (UPDATE) necesită resurse suplimentare. - Prea multe indexuri sau indexuri greșit alese pot încetini operațiunile de scriere.
Exemplu de creare a unui index în Ruby on Rails:
# Crearea unui index pe coloana 'email' în tabelul 'users'
add_index :users, :email
# Crearea unui index unic pe coloana 'username'
add_index :users, :username, unique: true
# Crearea unui index compus pe coloanele 'user_id' și 'product_id'
add_index :orders, [:user_id, :product_id]
Exemplu de utilizare a unui index în SQL (executat de baza de date):
-- Interogare care va folosi indexul pe coloana email
SELECT * FROM users WHERE email = 'test@example.com';