Sobes.tech
Junior

Чӣ гуна индекс дар базаи додаҳо эҷод кардан мумкин аст?

sobes.tech AI

Ҷавоб аз AI

Эҷоди индекс вобаста ба системаи идоракунии маълумот (СУБД) мебошад.

Синтаксиси умумии SQL барои эҷоди индекс чунин аст:

CREATE INDEX номи_индекс
ON номи_таблицав (сутун1, сутун2, ...);
  • CREATE INDEX: Калимаву калидҳо барои эҷоди индекс.
  • номи_индекс: Номи, ки ба индекс медиҳед. Мебояд дар дохили ҷадвал беназир бошад.
  • номи_таблицав: Номи ҷадвале, ки шумо индексро дар он месозед.
  • сутун1, сутун2, ...: Листи сутунҳое, ки дар индекс дохил мешаванд. Тартиби сутунҳо барои индексҳои мураккаб муҳим аст.

Маслиҳатҳо барои DBMS-ҳои маъруф:

DBMS Маслиҳат
PostgreSQL CREATE INDEX users_email_idx ON users (email);
MySQL CREATE INDEX products_price_category_idx ON products (price, category_id);
SQLite CREATE INDEX orders_date_idx ON orders (order_date);
SQL Server CREATE INDEX payments_user_idx ON payments (user_id);

Мумкин аст, ки намудҳои гуногуни индексҳо эҷод шаванд, масалан:

  • Индексҳои кластерӣ: Тартиби физикии нигоҳдории сатрҳоро муайян мекунанд (одатан як дар ҳар ҷадвал).
  • Индексҳои ғайри кластерӣ: Сохтори алоҳидаи додаҳо, ки истинодҳоро ба сатрҳои ҷадвал нигоҳ медорад.
  • Индексҳои умумию: Боварӣ медиҳанд, ки арзишҳо дар сутунҳои индексшуда беназир мебошанд.

Маслиҳат барои эҷоди индексҳои умумию:

CREATE UNIQUE INDEX users_username_unique_idx
ON users (username);

Индексҳои мураккаб дар чанд сутун:

CREATE INDEX orders_user_product_idx
ON orders (user_id, product_id);

Муҳим аст, ки сутунҳоро барои индексгузорӣ аз рӯи шартҳои бештар истифодашаванда дар WHERE, JOIN ва ORDER BY интихоб кунед. Эҷоди зиёда аз индексҳо ё индексҳо дар сутунҳои нодуруст метавонад иҷрои амалиётҳои воридот, навсозӣ ва хориҷкуниро кам кунад.