No hi ha temps per parlar sobre com crear taules optimitzat per donar millors resultats. Me'n recordo que només els camps indexats millorar molt el temps d'execució. En comptes de parlar algunes petit truc perquè sigui més rendiment que MySQL és usualment instal lat en la majoria de distribució sense massa paràmetres de sintonització. La informació es refereixen una distro de Linux, però es pot adaptar fàcilment a altres sistemes operatius.
El fitxer de configuració normalment es troba a / etc / my.ini.
Eempio d'my.ini:
[mysqld]
datadir = / var / lib / mysql
socket = / var / lib / mysql / mysql.sock
set-variable = key_buffer = 64M
set-variable = max_user_connections = 100
set-variable = query_cache_size = 64M
# Per defecte a usar la contrasenya antiga per mantenir la compatibilitat amb el format mysql 3.x
# Clients (aquells que utilitzen el paquet de compatibilitat mysqlclient10).
old_passwords = 1
[mysql.server]
user = mysql
based = / var / lib
[mysqld_safe]
err-log = / var / log / mysqld.log
pid-file = / var / run / mysqld / mysqld.pid
memòria temporal: l'amortiment de qualsevol incremeto tindrà una base de dades molt més ràpid. A continuació, estableixi els límits sobre la base de la quantitat de memòria disponible, tenint en compte el consum realitzat pel sistema operatiu i altres aplicacions i serveis en ús. Si assignar massa memòria encara que no té una disposició que pot executar en el desenvolupament global del sistema.
Wait_timeout: representa el temps que transcorre abans que es tanca automàticament connectar-se a MySQL, a causa de la inactivitat. Menor nombre és un millor rendiment. En aquest cas també ha de desenvolupar el tipus de connexions i les seves presumptes temps per calibrar el millor paràmetre.
back_log: controla el nombre de connexions simultànies que pot sostenir alhora crea noves Mysql fil. Com més baix sigui el nombre, major és la velocitat. Compte, és fàcil de no degradar el rendiment mitjançant l'establiment d'aquest paràmetre correctament, utilitzeu només quan sigui absolutament necessari.
Max_user_connections: Estableix el nombre màxim de connexions permeses a un usuari. És molt útil en sistemes en el mateix servidor MySQL té accés a múltiples usuaris simultàniament.
Delayed_queue_size: nombre de files amb INSERT delay. Serà menor al llarg de les línies, més ràpid Mysql.
Sort_buffer_size: estableix la mida del buffer assignat a l'aplicació de les clàusules ORDER BY i GROUP BY. Per realitzar consultes més eficients que estableix aquest paràmetre en un valor superior a 2M.
Table_cache: controla el nombre de taules obertes per a tots els fils, l'augment d'aquesta variable augmentarà les taules carregades de manera simultània i l'execució de Mysql serà molt més ràpid. Atenció a aquest paràmetre, els sistemes operatius tenen un límit d'enllaços als arxius oberts a la vegada, en cas que superi aquest límit, pot incórrer en qualsevol mal funcionament del sistema.
Thread_cache_size: Fixa el nombre de fils per mantenir en la memòria cau. Aquesta característica fa que l'ús de fils molt ràpid.
La comanda SHOW STATUS ens ajuda a controlar en temps real les variables que més que altres per ajudar-nos a comprendre quines són les millores més significatives que podem fer:
- Handler_read_first: Indica quantes vegades el primer registre es llegeixi d'una taula. Si això passa amb freqüència, això significa que la taula no es indexen correctament.
- Innodb_buffer_pool_wait_free: indica el nombre de vegades que MySQL ha d'esperar a la descàrrega de pàgines de memòria. Si el valor de retorn és alta, la mida del pool de buffer no s'ha configurat correctament per la quantitat d'operacions d'escriptura sofert pel servidor.
- Key_reads: indica el nombre de vegades que accedeix a MySQL el sistema d'arxius de base de dades d'índexs. Això alenteix la velocitat d'execució de la consulta, per la qual cosa si aquest valor és alt llavors vol dir que la clau d'esmorteïment és massa petit i s'ha d'augmentar.
- Max_used_connections: Indica el nombre màxim de connexions que MySQL ha d'obrir durant l'últim arrencada. D'una banda, això representa un veritable punt de referència (que ajuda a decidir el nombre màxim de connexions que pot suportar el servidor) i l'altra es presenta com un analitzador de trànsit.
- Open_tables: Indica el nombre actual de les taules obertes. Aquest valor ha de ser analitzat en combinació amb la mida de la memòria cau de la taula. Normalment, la mida de table_cache hauria de fixar més alts per aquesta variable. Si el valor de open_tables és molt menor que table_cache per evitar problemes de rendiment, és per tant, també reduir la mida de la memòria cau. Si el valor de open_tables és molt elevada i s'aproxima a la mida de la memòria cau, i després elevar table_cache.
- Select_full_join: El nombre d'unir-se MySQL ha realitzat per satisfer les demandes dels clients. Un valor alt indica que en lloc d'utilitzar índexs, MySQL s'ha vist obligada a realitzar la plena adhesió. Això suggereix la necessitat d'un fort índex d'aquestes taules.
- Slow_queries: indica el nombre de consultes que va portar més temps del que és usual per fer. Un valor alt ens ha de portar a analitzar el log de consultes lentes per identificar quines són les consultes lentes per optimitzar.
- Threads_connected: Indica el nombre total de clients que estan connectats amb el servidor en aquell moment.
- Created_tmp_disk_tables: indica el nombre de taules temporals, les quals van ser creades en el disc en lloc de la memòria. Atès que les taules d'accés en un disc és generalment més lent que la memòria, el contingut de la variable és inversament proporcional a la velocitat amb què les consultes s'estan executant la comanda CREATE TEMPORARY TABLE.
- Uptime: Mostra el nombre de segons en el servei.



































