Optimització de MySQL
La revisió el 10:17, 24 feb 2016 per Enric (discussió | contribucions) (Es crea la pàgina amb «* [http://www.pontikis.net/blog/how-and-when-to-enable-mysql-logs Un bon link sobre els logs de mysql]. * [https://www.pedroventura.com/sysadmin/configurando-y-optimiz...».)
- Un bon link sobre els logs de mysql.
- Algunes optimitzacions interessants.
- Script mysqltunner: ens farà una anàlisi i ens donarà consells per millorar el rendiment.
- Descàrrega ràpida:
- $ wget http://mysqltuner.pl/ -O mysqltuner.pl
- $ perl mysqltunner.pl
- Descàrrega ràpida:
- Els Indexs en MySQL és un dels aspectes que poden millorar més el rendiment en les queries a una base de dades.
- La fragmentació de les taules és un altre dels problemes típics de baixada de rendiment.
En motors MyISAM podem realitzar una optimització de les taules millorant la seva fragmentació interna.
- Analitzem la taula:
mysql> show table status like "taula1"\G
- Optimitzem taula:
mysql> optimize table taula1;
En el cas de InnoDB no podem realitzar aquestes optimitzacions. Si ho intentem, ens dirà això:
mysql> optimize table watchlist; +-------------------------+----------+----------+-------------------------------------------------------------------+ | Table | Op | Msg_type | Msg_text | +-------------------------+----------+----------+-------------------------------------------------------------------+ | enricmie_wiki.watchlist | optimize | note | Table does not support optimize, doing recreate + analyze instead | | enricmie_wiki.watchlist | optimize | status | OK | +-------------------------+----------+----------+-------------------------------------------------------------------+ 2 rows in set (0.40 sec)
Per optimitzar la fragmentació d'una InnoDB caldria:
- Volcar informació amb mysqldump
- Deshabilitar les claus forànies que depenguin de la taula
- Esborrar la taula
- Crear la taula de nou
- Carregar el volcat
- Tornar a habilitar les claus forànies