Optimizējiet savus vaicājumus vaicājumu kešatmiņai
Lielākajai daļai MySQL serveru ir atļauta vaicājumu kešatmiņa. Tā ir viena no labākajām veiktspējas uzlabošanas stratēģijām, par kuru neuzkrītoši rūpējas datu bāzes dzinējs. Ikreiz, kad viens un tas pats vaicājums tiek izpildīts vairākas reizes, rezultāts tiek iegūts no kešatmiņas, tātad daudz ātrāk.
IZSkaidrojiet savus SELECT vaicājumus
Lai gūtu ieskatu par to, ko MySQL dara, lai izpildītu jūsu vaicājumu, izmantojiet atslēgvārdu EXPLAIN. Tas palīdz noteikt vājās vietas un citas problēmas, kas var traucēt jūsu vaicājumam vai citiem datu bāzes objektiem.
IEROBEŽOJUMS 1 Iegūstot unikālu rindu
Vaicājot tabulām tikai vienu rindu vai ierakstus, kas atbilst noteiktai WHERE klauzulai, ieteicams pievienot LIMIT 1 vaicājumam SELECT, lai palielinātu veiktspēju. Tas nozīmē, ka datu bāzes dzinējs atgriezīs rezultātus pēc tam, kad būs atradis tikai vienu ierakstu, nevis skenēs visu konkrēto datu bāzes objektu.
Indeksējiet meklēšanas laukus
Ja jūsu tabulās ir kolonnas, kuras izmantosit meklēt pēc vaicājumus, ieteicams tos vienmēr rādīt.
Pievienojiet indeksus un izmantojiet tos pašus kolonnu nosaukumus
Labākā prakse ir arī vienmēr indeksēt kolonnas, kas tiek izmantotas JOIN. Tas ievērojami uzlabo to, kā MySQL optimizē JOIN darbību. Pārliecinieties arī, vai kolonnas, kas tiek savienotas, ir viena veida. Ja tie ir dažāda veida, iespējams, MySQL nevarēs izmantot vienu no indeksiem.
Neizvēlieties visu (SELECT *)
No tabulām nolasīto datu apjoms būtiski ietekmē vaicājuma ātrumu. Tas ietekmē laiku, kas nepieciešams diska darbībām. Ja datu bāzes serverim piekļūst tīklā, tas ietekmēs laiku, kas nepieciešams datu pārsūtīšanai pa tīklu. Viena no MySQL paraugpraksēm vienmēr ir norādīt, kuras kolonnas jums ir nepieciešamas, veicot SELECT.
Izvēlieties pareizo uzglabāšanas dzinēju
MySQL ir divi galvenie uzglabāšanas dzinēji; MyISAM un InnoDB. Katram no tiem ir savas priekšrocības un trūkumi.
MyISAM ir ieteicams lietotnēm, kurās ir daudz lasīšanas, lai gan tas darbojas slikti gadījumos, kad ir daudz rakstīšanas. Datu bāzes objekti tiek bloķēti, kad ar tiem tiek veikta darbība neatkarīgi no tā, cik vienkārši tie ir. MyISAM būtu noderīgs, veicot daudzus SELECT COUNT (*) vaicājumus.
InnoDB mēdz būt sarežģītāks uzglabāšanas dzinējs. Tomēr daudzām mazām lietojumprogrammām tas var būt nedaudz lēnāks nekā MyISAM. Bet tā atbalsta rindu bloķēšanu, kas mērogojas labāk. Tas var arī apstrādāt dažas uzlabotas funkcijas, piemēram, darījumus.
Avoti
https://www.fullstackpython.com/blog/install-mysql-ubuntu-1604.html
https://code.tutsplus.com/tutorials/top-20-mysql-best-practices–net-7855