Diferència entre revisions de la pàgina «Optimització de MySQL»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
(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...».)
 
Línia 1: Línia 1:
* [http://www.pontikis.net/blog/how-and-when-to-enable-mysql-logs Un bon link sobre els logs de mysql].
+
La optimització d'uns base de dades és important
 +
 
 +
 
 +
Diferents aspectes a optimitzar:
 +
* [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-optimizando-un-servidor-my-cnf/ Algunes optimitzacions interessants].
 
* [https://www.pedroventura.com/sysadmin/configurando-y-optimizando-un-servidor-my-cnf/ Algunes optimitzacions interessants].
* [http://mysqltuner.com/ Script mysqltunner]: ens farà una anàlisi i ens donarà consells per millorar el rendiment.
+
* [http://mysqltuner.com/ Script mysqltuner]: ens farà una anàlisi i ens donarà consells per millorar el rendiment.
 
** Descàrrega ràpida:
 
** Descàrrega ràpida:
 
**: $ wget http://mysqltuner.pl/ -O mysqltuner.pl
 
**: $ wget http://mysqltuner.pl/ -O mysqltuner.pl
 
**: $ perl mysqltunner.pl
 
**: $ perl mysqltunner.pl
 +
** També es pot instal·lar amb <pre>$ sudo apt-get install mysqltuner</pre>
 
* Els [[Indexs en MySQL]] és un dels aspectes que poden millorar més el rendiment en les queries a una base de dades.
 
* 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.
 
* La '''fragmentació de les taules''' és un altre dels problemes típics de baixada de rendiment.
Línia 30: Línia 35:
 
# Tornar a habilitar les claus forànies
 
# Tornar a habilitar les claus forànies
  
<br>
+
Tot i que ja posats, potser val més recrear tot la base de dades ;)

Revisió del 10:22, 24 feb 2016

La optimització d'uns base de dades és important


Diferents aspectes a optimitzar:

En motors MyISAM podem realitzar una optimització de les taules millorant la seva fragmentació interna.

  1. Analitzem la taula:
    mysql> show table status like "taula1"\G
  2. 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:

  1. Volcar informació amb mysqldump
  2. Deshabilitar les claus forànies que depenguin de la taula
  3. Esborrar la taula
  4. Crear la taula de nou
  5. Carregar el volcat
  6. Tornar a habilitar les claus forànies

Tot i que ja posats, potser val més recrear tot la base de dades ;)