SQL so'rov optimizatsiyasi — tezlashtirish

Kichik bazada har so’rov tez ishlaydi. Ma’lumot o’sgani sari esa ba’zi so’rovlar sekinlashadi. Optimizatsiya — so’rovni bir xil natija bilan, lekin tezroq ishlatish san’ati. Bu darsda amaliy usullarni ko’ramiz.

1. Indeksdan foydalaning

Eng katta ta’sir — indeks. Tez-tez WHERE yoki JOIN da ishlatiladigan ustunga indeks qo’ysangiz, baza butun jadvalni o’qimay, kerakli qatorga to’g’ri o’tadi:

CREATE INDEX idx_buyurtmalar_mijoz ON buyurtmalar(mijoz_id);

O’zingiz ishga tushirib ko’ring — so’rovni tahrirlashingiz ham mumkin:

SQL · namuna baza

2. Faqat kerakli ustunni tanlang

SELECT * hamma ustunni tortadi — ko’pincha keraksiz. Faqat kerakli ustunni so’rang:

-- Sekinroq: hamma ustun
SELECT * FROM mahsulotlar;

-- Tezroq: faqat kerakli ikkitasi
SELECT nom, narx FROM mahsulotlar;

Ustun kam bo’lsa, baza kamroq ma’lumot o’qiydi va uzatadi.

3. WHERE bilan erta filtrlang

Ma’lumotni imkon qadar erta kamaytiring. Keraksiz qatorlarni WHERE bilan boshidan chiqarib tashlang — shunda keyingi amallar (guruhlash, tartiblash) kamroq qator ustida ishlaydi:

SELECT nom, narx FROM mahsulotlar
WHERE turi = 'meva';

4. Keraksiz ishdan qoching

  • Kerak bo’lmasa ORDER BY qo’shmang — tartiblash vaqt oladi.
  • DISTINCT ni faqat zarur bo’lganda ishlating.
  • Katta natijani LIMIT bilan cheklang, agar hammasi kerak bo’lmasa.

Amaliy mashq

So’rovni yaxshilang:

  1. SELECT * bilan so’rov yozing;
  2. faqat kerakli ustunlarni tanlab, qayta yozing;
  3. WHERE shartini qo’shib, qatorlarni cheklang;
  4. EXPLAIN QUERY PLAN bilan ikki variantni solishtiring;
  5. LIMIT qo’shib, natijani yanada cheklang.

Kichik bazada farq sezilmaydi — bu qoidalar qachon muhim bo’ladi?

Qisqacha xulosa

  • Indeks — tez-tez qidiriladigan ustunlarga qo’ying (eng katta ta’sir).
  • SELECT * o’rniga faqat kerakli ustunlarni tanlang.
  • WHERE bilan ma’lumotni erta kamaytiring.
  • Keraksiz ORDER BY, DISTINCT dan qoching; LIMIT bilan cheklang.
  • Avval to’g’ri ishlasin, keyin — zarur bo’lsa — tezlashtiring.

Keyingi darsda EXPLAIN — baza so’rovni qanday bajarayotganini ko’rsatadigan vositani o’rganamiz.

Bu dars foydali bo'ldimi?

marta ko'rildi