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);
Ինդեքս ստեղծելուց հետո, հարցման պլանը պետք է փոխվի և ցույց տա ինդեքսային որոնում օգտագործելու մասին։