Sobes.tech
Middle

როგორ გამოიყენება ინდექსი დიდ ცხრილში?

sobes.tech AI

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

დიდი ცხრილში ინდექსი მნიშვნელოვნად აჩქარებს მონაცემთა არჩევის (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';