Määritä SELECT
kyselyissä tarvittavat kentät
Sen sijaan, että valitsisit kaikki kyselyn kentät SELECT
, valitse vain pakolliset kentät kuormituksen vähentämiseksi ja kyselyn nopeuden parantamiseksi.
Jos esimerkiksi välität vain asiakkaan nimestä ja osoitteesta, vaihda kysely:
SELECT * FROM customers;
kanssa
SELECT name, address FROM customers;
Luo hakemistoja
Index
auttaa MySQL
etsimään ja hakemaan tietoja nopeammin. Tunnista kentät, joita käytetään usein lausekkeissa WHERE
, JOIN
, tai ORDER BY
ja luo niille indeksit.
Jos esimerkiksi taulukossa " orders
" customer_id
käytetään usein kenttää WHERE
tai JOIN
kyselyissä, voit luoda indeksin seuraavasti:
CREATE INDEX idx_customer_id ON orders(customer_id);
Käytä sopivia indeksejä
MySQL
tarjoaa erilaisia indeksejä, kuten B-tree
, hash ja full-text
. Valitse sopiva hakemistotyyppi kyselyvaatimustesi perusteella varmistaaksesi optimaalisen suorituskyvyn.
Jos esimerkiksi haluat etsiä tekstiä tietokentästä, voit luoda indeksin full-text
seuraavasti:
CREATE FULLTEXT INDEX idx_description ON products(description);
Optimoi kyselyt
Käytä EXPLAIN
tarkastellaksesi kyselyn suoritussuunnitelmaa ja analysoidaksesi, kuinka MySQL
se toimii. Tämä auttaa sinua tunnistamaan suorituskykyongelmat ja optimoimaan kyselyt indeksien avulla tai kirjoittamalla kyselyitä uudelleen.
Jos haluat esimerkiksi nähdä kyselyn kyselysuunnitelman SELECT
, suorita seuraava komento:
EXPLAIN SELECT * FROM orders WHERE customer_id = 123;
Rajoita palautettujen tulosten määrää
Kun kysely palauttaa suuren määrän tuloksia, rajoita palautettujen tulosten määrää lausekkeen avulla LIMIT
. Tämä auttaa vähentämään kuormitusta ja parantamaan kyselyn nopeutta.
Jos esimerkiksi haluat palauttaa vain 10 tulosta "tuotteet" -taulukosta, voit käyttää seuraavaa kyselyä:
SELECT * FROM products LIMIT 10;
Käytä INNER JOIN
sen sijaan JOIN
INNER JOIN
toimii paremmin kuin tavallinen JOIN
. Käytä INNER JOIN
, kun välität vain tietueista, joilla on osuma molemmissa taulukoissa.
Voit esimerkiksi liittyä taulukoihin " orders
" ja " customers
" kentän " " perusteella customer_id
käyttämällä seuraavaa kyselyä:
SELECT * FROM orders INNER JOIN customers ON orders.customer_id = customers.customer_id;
Käytä väliaikaisia pöytiä varoen
Väliaikaisia taulukoita voidaan käyttää tietyissä tapauksissa, mutta niitä on käytettävä huolellisesti, koska ne voivat hidastaa kyselyitä. Harkitse kyselyiden optimointia välttääksesi väliaikaisten taulukoiden käyttämisen, jos mahdollista.
Esimerkiksi tilapäisen taulukon käyttämisen sijaan seuraavassa kyselyssä:
CREATE TEMPORARY TABLE temp_table SELECT * FROM products;
voit yrittää optimoida kyselyn hakemaan tietoja suoraan alkuperäisestä taulukosta.
Hienosäädä MySQL-kokoonpano
Harkitse MySQL:n määrittämistä uudelleen, jotta saat parhaan hyödyn järjestelmäresursseista ja vastaamaan sovelluksesi vaatimuksia. Tämä sisältää muistin, puskurin koon, yhteysrajoitusten ja muiden parametrien määrittämisen. Katso MySQL-dokumentaatiosta ja opi säätämään kokoonpanoa omaan ympäristöösi sopivaksi.
Poista tarpeettomat tiedot
Poista tarpeettomat tiedot tai varmuuskopioi vanhat tiedot pienentääksesi tietokannan kokoa ja parantaaksesi kyselyn nopeutta.
Jos sinulla on esimerkiksi " logs
" taulukko, joka sisältää vanhoja lokitietueita, voit poistaa yli vuoden vanhoja tietueita käyttämällä seuraavaa kyselyä:
DELETE FROM logs WHERE created_at < '2022-01-01';
Käytä muistia cache
Määritä MySQL:n muisti cache
tallentamaan usein suoritetut kyselyt ja äskettäin käytetyt tiedot. Tämä auttaa lyhentämään levyn käyttöaikaa ja parantamaan kyselyn nopeutta.
Jos haluat esimerkiksi määrittää 1 Gt:n välimuistin, voit muokata MySQL:n "my.cnf"-määritystiedostoa seuraavasti:
[mysqld]
...
query_cache_type = 1
query_cache_size = 1G
Huomaa, että yllä olevat esimerkit ovat havainnollistavia ja niitä on mukautettava todellisen tietokantasi rakenteen ja vaatimusten mukaisesti. Testaa ja arvioi tehokkuus huolellisesti ennen ja jälkeen näiden optimointitekniikoiden soveltamisen varmistaaksesi, että ne sopivat ympäristöösi.