Middle
Kako se koristi indeks u velikoj tabeli?
sobes.tech АИ
Одговор од АИ
Индекс у великој таблици значајно убрзава операције одабира података (SELECT), као и операције измене (UPDATE, DELETE) када се користи услов WHERE са индексованим колонама. Без индекса, база података мора да скенира целу таблицу (full table scan), што је веома споро за велике количине података.
Када се користи индекс, база прво приступа структури индекса (обично B-језгро), која је знатно мања од саме табеле и садржи сортиране референце на редове података. Након што пронађе потребне референце у индексу, база брзо директно приступа траженим редовима.
Важно:
- Индекси заузимају простор на диску.
- Креирање и одржавање индекса током операција уметања (
INSERT) и ажурирања (UPDATE) захтева додатне ресурсе. - Превише индекса или погрешно изабрани индекси могу успорити операције уписа.
Пример креирања индекса у Ruby on Rails:
# Креирање индекса на колони 'email' у табли 'users'
add_index :users, :email
# Креирање јединственог индекса на колони 'username'
add_index :users, :username, unique: true
# Креирање сложеног индекса на колонама 'user_id' и 'product_id'
add_index :orders, [:user_id, :product_id]
Пример коришћења индекса у SQL-у (извршава се од базе података):
-- Упит који ће користити индекс на колони email
SELECT * FROM users WHERE email = 'test@example.com';