Sobes.tech
Middle

Hogyan használják az indexet egy nagy táblában?

sobes.tech MI

Válasz az MI-től

Egy nagy táblában az index jelentősen felgyorsítja az adatok lekérdezését (SELECT), valamint a módosító műveleteket (UPDATE, DELETE) akkor, amikor a WHERE feltétel indexelt oszlopokat használ. Index nélkül az adatbázisnak át kell néznie az egész táblát (teljes táblázat szkennelése), ami nagyon lassú nagy adatmennyiség esetén.

Az index használatával az adatbázis először az index struktúrájára (általában B-fa) hivatkozik, amely sokkal kisebb, mint maga a tábla, és rendezett hivatkozásokat tartalmaz az adatsorokra. Miután megtalálta a szükséges hivatkozásokat az indexben, az adatbázis gyorsan közvetlenül hozzáfér a kért sorokhoz.

Fontos:

  • Az indexek helyet foglalnak a lemezen.
  • Az indexek létrehozása és karbantartása INSERT és UPDATE műveletek során extra erőforrásokat igényel.
  • Túlságosan sok index vagy rosszul választott indexek lassíthatják az írási műveleteket.

Ruby on Rails példája index létrehozására:

# Index létrehozása az 'email' oszlopon a 'users' táblában
add_index :users, :email

# Egyedi index létrehozása az 'username' oszlopon
add_index :users, :username, unique: true

# Összetett index létrehozása az 'user_id' és 'product_id' oszlopokon
add_index :orders, [:user_id, :product_id]

SQL-ben index használatának példája (az adatbázis végzi):

-- Lekérdezés, amely az indexet fogja használni az 'email' oszlopon
SELECT * FROM users WHERE email = 'test@example.com';