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