Hoe wordt een index gebruikt in een grote tabel?
sobes.tech AI
Antwoord van AI
De index in een grote tabel versnelt aanzienlijk de gegevensophaalbewerkingen (SELECT) en ook de wijzigingsbewerkingen (UPDATE, DELETE) wanneer de WHERE-voorwaarde wordt gebruikt met geïndexeerde kolommen. Zonder index moet de database de hele tabel scannen (full table scan), wat erg langzaam is bij grote hoeveelheden gegevens.
Bij gebruik van een index, verwijst de database eerst naar de indexstructuur (meestal een B-boom), die veel kleiner is dan de tabel zelf en gesorteerde verwijzingen naar de datarijen bevat. Door de benodigde verwijzingen in de index te vinden, krijgt de database snel direct toegang tot de gevraagde rijen.
Belangrijk:
- Indexen nemen ruimte in op de schijf.
- Het aanmaken en onderhouden van indexen tijdens insert (
INSERT) en update (UPDATE) operaties vereist extra bronnen. - Te veel indexen of verkeerd gekozen indexen kunnen schrijfbewerkingen vertragen.
Voorbeeld van het maken van een index in Ruby on Rails:
# Index op de kolom 'email' in de tabel 'users'
add_index :users, :email
# Unieke index op de kolom 'username'
add_index :users, :username, unique: true
# Samengestelde index op de kolommen 'user_id' en 'product_id'
add_index :orders, [:user_id, :product_id]
Voorbeeld van het gebruik van een index in SQL (uitgevoerd door de database):
-- Query die de index op de kolom email gebruikt
SELECT * FROM users WHERE email = 'test@example.com';