Optimalizácia MySQL servera

Optimalizácia InnoDB

Aby mal MySQL server optimálny výkon pri väčších databázach, treba v súbore my.ini vhodne nastaviť uvedené parametre.

Innodb_buffer_pool_size - cache pre dáta a indexy tabuliek. Na dedikovaných serveroch nastavujeme v rozmedzí 70-80% celkovej pamäte, nie však mnoho väčšiu, než je súčet veľkostí súborov ibdata.
Innodb_log_file_size - veľkosť logovacieho súboru. Oplatí sa zväčšiť ak sa často zapisujú dáta do databázy. Čím väčšiu hodnotu nastavíme, tým dlhšie bude trvať následná obnova, ak dôjde k pádu SQL servera!
Innodb_log_buffer_size - veľkosť buffera logu pred zápisom do súboru, rozmedzie je 1 až 8 MB. Odporúčame 7 MB.
Innodb_file_per_table - pre databázy EcoSun odporúčame nastaviť na 0, inak výrazne spomaľuje konverziu. Platí pre MySQL od verzie 5.6.
Tmp_table_size - udáva maximálnu veľkosť dočasnej tabuľky, ktorú je možné vytvoriť v operačnej pamäti. Po prekročení tohto limitu sú dočasné tabuľky vytvárané ako MyISAM tabuľky na disku. Súčasne s navýšením hodnoty je dobré zvýšiť tiež nastavenie max_heap_table_size.

Príklad optimálneho nastavenia pre 8 GB RAM a 3 GB databázu:

innodb_buffer_pool_size=4000M
innodb_log_file_size=1000M
tmp_table_size=4000M
max_connections=100
query_cache_size=100M
innodb_log_buffer_size=7M
max_allowed_packet=32M

Zvýraznené parametre sú najdôležitejšie pre optimálny výkon. Pre iné veľkosti databázy a RAM treba upraviť parameter innodb_buffer_pool_size.

Dôležité: Od verzie MySQL 5.7.20 je defaultne vypnutá query cache, čo má za následok zníženie rýchlosti aplikácie EcoSun na viacerých miestach (napr. výber organizácie na doklade).

Zapnutie query cache v my.ini v sekcii [mysqld]:

query_cache_type=1
query_cache_size=100M

POZOR: Po zmene parametrov treba reštartovať službu MySQL. Ak ste menili parameter innodb_log_file_size, treba službu MySQL zastaviť, vymazať súbory ib_logfile0 a ib_logfile1 v adresári c:\ProgramData\MySQL\MySQL Server 5.x\data\ a službu opäť spustiť.

 

Zistenie veľkosti MySQL databázy v SQLyog

mceclip3.png
Ak nie je na serveri dostatok RAM aby sa mohla načítať celá databáza do pamäte, dôjde k výraznému zníženiu výkonu aplikácie pri čítaní údajov z MySQL.mceclip5.png

 

 

Máte ďalšie otázky? Vložiť žiadosť

0 Príspevky

Prosím prihlásiť sa pre vloženie príspevku.
Powered by Zendesk