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';