Sobes.tech
Middle+

Ինչպե՞ս հասկանալ հարցման պլանից, որ ինդեքսներ պակասում են։

sobes.tech AI

Պատասխան AI-ից

Որպեսզի հասկանալ, թե ինչ է բացակայում ինդեքսներում հարցման պլանում, պետք է ուշադրություն դարձնել հետևյալ նշաններին:

  • Պլանում տեսանելի են ամբողջական աղյուսակների սկանավորումներ (Table Scan, Full Table Scan, Seq Scan), ոչ թե ինդեքսային անցումներ (Index Scan, Index Seek):
  • Օպերացիաների բարձր արժեք, կապված մեծ քանակությամբ տողեր կարդալու հետ:
  • Չլինել օգտագործման ինդեքսների այն սյունակների վրա, որոնք մասնակցում են WHERE, JOIN, ORDER BY պայմաններին:

Օրինակ, եթե հարցման պլանում տեսնում եք, որ user_id սյունակի համար կատարվում է ամբողջական աղյուսակի սկան, դա հավանական է, որ այդ սյունակի վրա ինդեքս չկա: Այդ դեպքում, պետք է ստեղծել ինդեքս, որպեսզի արագացնեք հարցումը:

Օրինակ՝

EXPLAIN SELECT * FROM orders WHERE user_id = 123;

Եթե ելույթում նշվում է Seq Scan on orders, դա նշանակում է, որ ինդեքսը բացակայում է կամ չի օգտագործվում:

Ինդեքս ստեղծելու համար՝

CREATE INDEX idx_orders_user_id ON orders(user_id);

Ինդեքս ստեղծելուց հետո, հարցման պլանը պետք է փոխվի և ցույց տա ինդեքսային որոնում օգտագործելու մասին։