Jäsennyksen ja kyselyjen optimoinnin ymmärtäminen
Jäsennin
Jäsennys on sisäinen prosessi, joka jakaa kyselyn tunnuksiksi. Jäsennys koostuu kahdesta osasta:
- MySQL-kielioppisäännön tarkistus
- Sanastollinen skanneri
Jäsennin luo sitten -jäsennyspuun ja esikäsittely tekee lisätarkistuksia, kuten sen, onko taulukoita tai sarakkeita olemassa. Esikäsittely tarkistaa myös oikeudet.
Jäsennyksen tehtävänä on kääntää kyselyteksti kelvolliseksi jäsennyspuurakenteeksi, jota Kyselyoptimointi-voi käyttää.
Kyselyoptimointi
Kyselyn optimointitoiminto ottaa jäsennyspuun ja muuttaa sen kyselyn suoritussuunnitelmaksi. Kyselyoptimoinnin on löydettävä optimaalinen suunnitelma monien mahdollisten suunnitelmien joukosta ennustamalla eri suunnitelmien kustannus. Kyselyoptimointi pyytää soveltuvalta säilömoduulilta tilastotietoja, kuten kunkin taulukon sivujen määrän tai rivien pituuden. Koska kyselyoptimointi käyttää tilastoja säilömoduulissa, sillä ei aina ole tarvitsemaansa tilastotietoa tai koska se on ajan tasalla ja tarkka.
Muistiinpano
Asiaankuuluva säilömoduuli luo tilastotiedot, ja kukin säilömoduuli luo ja tallentaa eri tilastotietoja. Esimerkissä InnoDB ei tallenna rivin pituustilastoja.
Voit tarkastella, miten Azure Database for MySQL on suorittanut kyselyn käyttämällä EXPLAIN -lauseketta. EXPLAIN-funktiota voidaan käyttää etuliitteenä SELECT-, INSERT-, DELETE-, REPLACE- ja UPDATE-tyytymisissä. Kun käytät EXPLAIN-lauseketta, MySQL selittää valitsemansa suoritussuunnitelman sen suorittamisen sijaan.
Muistiinpano
EXPLAIN - lauseke on synonyymi DESCRIBE-kanssa. Käytännössä EXPLAIN- näytetään, miten MySQL suorittaa kyselyn, ja DESCRIBE- käytetään taulukon sarakkeiden tietojen näyttämiseen. EXPLAIN- ja DESCRIBE- edellyttävät samoja oikeuksia kuin alkuperäinen lauseke. EXPLAIN- edellyttää myös NÄYTÄ NÄKYMÄ -oikeutta näkymän suoritussuunnitelman näyttämiseen.
Voit myös selvittää viimeisimmän suoritetun kyselyn kustannukset. Kun olet tehnyt kyselyn, näytä kustannukset suorittamalla:
SHOW STATUS LIKE 'last_query_cost';
Tämä lauseke näyttää niiden sivujen määrän, jotka luetaan kyselyn suorittamiseen. Näyttämällä last_query_cost kyselyn muunnelmien jälkeen voit selvittää kunkin kyselyn suhteellisen hinnan.
MySQL:n arkkitehtuuri on suunniteltu suorittamaan useita onnistuneita kyselyitä samanaikaisesti. Jos voit valita, harkitse pienten kyselyiden suorittamista pienempien ja monimutkaisten kyselyiden asemesta.
Juomaraha
DESCRIBE ja EXPLAIN tunnetaan MySQL:n apuohjelmalausekkeina. Apuohjelmalausekkeita on neljä: DESCRIBE, EXPLAIN, HELP ja USE. OHJE palauttaa ohjeita tietystä aiheesta, kuten OHJEen "tietotyypeistä", jossa näkyvät kaikki MySQL-tietotyypit. USE ohjaa MySQL:ää siitä, mihin tietokantaan tulisi soveltaa seuraavia lausekkeita, kuten USE MyDatabase.