Ինչպես է օգտագործվում ցուցանիշը մեծ աղյուսակում?
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';