Optimizirajte svoje upite za predmemoriju upita
Većina MySQL poslužitelja ima mogućnost keširanja upita. To je jedna od najboljih strategija za poboljšanje performansi, o kojoj se nenametljivo brine motor baze podataka. Kad god se isti upit izvodi više puta, rezultat dolazi iz predmemorije, dakle mnogo brže.
OBJAŠNITE svoje upite SELECT
Da biste dobili uvid u to što MySQL radi kako bi pokrenuo vaš upit, upotrijebite ključnu riječ EXPLAIN. To pomaže u identificiranju uskih grla i drugih problema koji bi mogli uznemiriti vaš upit ili druge objekte baze podataka.
OGRANIČENJE 1 Prilikom dobivanja jedinstvenog reda
Prilikom postavljanja upita vašim tablicama za samo jedan redak ili postojanja zapisa koji odgovaraju datoj odredbi WHERE, preporučuje se dodavanje OGRANIČENJA 1 vašem upitu SELECT za povećanje performansi. To znači da će mehanizam baze podataka vratiti rezultate nakon što pronađe samo jedan zapis umjesto skeniranja kroz cijeli zadani objekt baze podataka.
Indeksirajte polja za pretraživanje
Ako u vašim tablicama postoje stupci za koje ćete koristiti pretraživati po upite, preporučuje se da ih uvijek indeksirate.
Indeksirajte i koristite iste nazive stupaca za pridruživanja
Također je najbolja praksa uvijek indeksirati stupce koji se koriste u JOIN -u. Ovo značajno poboljšava način na koji MySQL optimizira JOIN operaciju. Također provjerite jesu li stupci koji se spajaju istog tipa podataka. Ako su različitih vrsta, MySQL možda neće moći koristiti jedan od indeksa.
Izbjegavajte odabir svih (SELECT *)
Količina podataka koje čitate iz tablica značajno utječe na brzinu upita. Utječe na vrijeme potrebno za operacije diska. Ako se poslužitelju baze podataka pristupa putem mreže, to će utjecati na vrijeme potrebno za prijenos podataka putem mreže. To je jedna od najboljih praksi MySQL -a koja uvijek određuje koje su vam stupce potrebne prilikom izvođenja SELECT -a.
Odaberite pravi mehanizam za skladištenje
MySQL ima dva glavna pogona za pohranu podataka; MyISAM i InnoDB. Svaki od ovih ima svoje prednosti i nedostatke.
MyISAM preporučuje se za aplikacije s velikim čitanjem, iako se loše ponaša u slučajevima kada ima puno pisanja. Objekti baze podataka zaključavaju se kad se na njima obavi operacija, bez obzira na to koliko su jednostavni. MyISAM bi dobro došao kada radite brojne SELECT COUNT (*) upite.
InnoDB teži biti sofisticiraniji stroj za pohranu. Međutim, može biti malo zaostaje za MyISAM za mnoge male aplikacije. No, podržava zaključavanje na temelju redova, koje se bolje mjeri. Također može upravljati nekim naprednijim značajkama, poput transakcija.
Izvori
https://www.fullstackpython.com/blog/install-mysql-ubuntu-1604.html
https://code.tutsplus.com/tutorials/top-20-mysql-best-practices–net-7855