Sobes.tech
Junior

როგორ შევქმნათ ინდექსი მონაცემთა ბაზაში?

sobes.tech AI

პასუხი AI-სგან

ინდექსის შექმნა დამოკიდებულია კონკრეტულ მონაცემთა ბაზის მართვის სისტემაზე (DBMS).

SQL-ის საერთო სინტაქსი ინდექსის შექმნისთვის გამოიყურება ასე:

CREATE INDEX ინდექსის_სახელი
ON ცხრილის_სახელი (სვეტ1, სვეტ2, ...);
  • CREATE INDEX: კლავიშები ინდექსის შექმნისთვის.
  • ინდექსის_სახელი: სახელწოდება, რომელსაც აძლევთ ინდექსს. უნდა იყოს უნიკალური ცხრილში.
  • ცხრილის_სახელი: სახელწოდება ცხრილის, რომელზეც ქმნით ინდექსს.
  • სვეტ1, სვეტ2, ...: სვეტების სია, რომლებიც შედის ინდექსში. სვეტების სია მნიშვნელოვანია კომპოზიციური ინდექსებისთვის.

პოპულარული მონაცემთა ბაზებისთვის მაგალითები:

მონაცემთა ბაზა მაგალითი
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 გამოთქმებში. ძალიან ბევრი ინდექსის შექმნა ან არასწორი სვეტების ინდექსების შექმნა შეიძლება შეამციროს ოპერაციების ეფექტიანობა ჩასმაში, განახლებაში და წაშლაში.