|
Paieška |
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:
Pavyzdys: Ieškote žmonių iš tam tikro miesto. Užklausoje turite suindeksuoti laukelį „miestas“: ALTER TABLE 'test' ADD INDEX ('miestas');
Kai kurie duomenys pasensta. Kodėl jų nesuarchyvuoti? Jūsų lentelės bus tuštesnės ir greičiau vyks paieška. Scenarijuose:
Apribokite įrašų pateikimą puslapyje iki apibrėžto skaičiaus (pvz., 10/psl.), tam naudokite komandą LIMIT.
Scenarijaus pradžioje sujunkite užklausas: Prisijungimas_prie_bazės 1užklausa 2užklausa ... atsijungimas nuo bazės Atvaizdavimas... Duomenų apdorojimas Ciklai... Vaizdavimas... ...
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ų.
Į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 naudoti komandą HAVING, kadangi tai ypač „godi“ procedūra. Žinoma, kartais ji būtina, tačiau ne visada. |