Paieška


print PDF
Optimizuokite savo SQL duomenų bazę

Kam reikia optimizuoti SQL bazę?
Pasirūpinkite savo duomenų bazėmis, kad jos visada būtų efektyvios. Tai reiškia, kad duomenų bazėse saugomi duomenys turi būti kuo greičiau nusiųsti jų paprašiusiam scenarijui. To pasieksite struktūrizavę ir optimizavę savo duomenų bazę. Šiame vadove paaiškinsime, kaip tai padaryti.

Duomenų bazėje:

  • Indeksuokite bazę:
Siekdami padidinti paieškos greitį, užklausos metu turite įvesti WHERE taisyklėje naudojamų laukų indeksą.

Pavyzdys:

Ieškote žmonių iš tam tikro miesto. Užklausoje turite suindeksuoti laukelį „miestas“: ALTER TABLE 'test' ADD INDEX ('miestas');


  • Išvalykite bazę:

Kai kurie duomenys pasensta. Kodėl jų nesuarchyvuoti? Jūsų lentelės bus tuštesnės ir greičiau vyks paieška.

Scenarijuose:

  • Rodymo limitas:

Apribokite įrašų pateikimą puslapyje iki apibrėžto skaičiaus (pvz., 10/psl.), tam naudokite komandą LIMIT.


  • Užklausų sujungimas:

Scenarijaus pradžioje sujunkite užklausas:

Prisijungimas_prie_bazės
1užklausa
2užklausa
...
atsijungimas nuo bazės

Atvaizdavimas...
Duomenų apdorojimas
Ciklai...
Vaizdavimas...
...


  • Kešavimas:

Jeigu jūsų duomenų bazės duomenys nedažnai keičiami, kešuokite juos. Pavyzdžiui, sugeneruokite HTML puslapį po informacijos pakeitimo, tai sumažins užklausų skaičių. Pavyzdys: naujienų svetainė. Jeigu html failas (kešas) egzistuoja, naudokite jį (paprasčiausiai įtraukite). Arba generuokite jį saugodami naujienas, taip pat įtraukite scenarijų, kuris ištrina html failą. Tokiu atveju puslapis bus generuojamas kaskart, kai tik vartotojai kreipsis į jį. Taip pat galite naudoti sesijos kešavimą. Užklausos rezultatus įtraukite į sesijos kintamuosius, kai klientas pateiks tą pačią užklausą, nereikės kreiptis į duomenų bazę, informaciją gausite iš sesijos kintamųjų.

  • Naudokite tik būtinas užklausas!

Įsitikinkite, kad jūsų SQL užklausos parinks tik tai, ko jums reikia, taip pat nepamirškite sukurti sąsajų tarp lentelių (where lentele1.laukas1 = lentele2.laukas2), priešingu atveju užklausos vykdymo laikas užtruks ilgesnį laiką (net jeigu užklausos pabaigoje, naudodami 'where', gausite tai, ko norite).

  • Venkite labai didelių užklausų:

Venkite naudoti komandą HAVING, kadangi tai ypač „godi“ procedūra. Žinoma, kartais ji būtina, tačiau ne visada.