-
Key buffer
-
almena indices de ladb en memoria (debe
ser capas de soportar todos los indices)
Ejm:
key_buffer = 500M key_buffer = 500M
-
valores adecuados?
- key_read_requests
número total de solicitudes clave servidas
desde el cachí©
- Key_reads
número de veces que MySQL ha tenido que accesar
el sistema de archivos para buscar las llaves
-
Cache de Tabla
- El table_cache de MySQL dice cuántas tablas se pueden tener
abiertos en cualquier momento. En consultas SQL, típicamente
varias tablas estan unidas. La regla general es que deben multiplicar
el número máximo de conexiones (que se describe a continuación)
por el número máximo de tablas utilizadas en joins.
Por ejemplo, si el número máximo de conexiones se establece en 400,
el cachí© de la tabla debe ser de al menos 400 * 10. La opción de
configuración a continuación muestra una tabla de cachí© de 4000:
table_cache = 4000
-
Buffers
- Utilizados a nivel global para todas las conexiones
- los dedicados a las conexiones
-
Ordenar buffers
- MySQL ordena los resultados de una consulta antes de que sean devueltos.
El sort buffer es por conexión, por lo que se debe multiplicar el tamaño del
sort buffer por el número máximo de conexiones para predecir los requisitos
de memoria del servidor.
En nuestro caso usamos un sort buffer de 3MB con 400 conexiones max, el
cual puede utilizar un total de 1,2 GB de memoria.
sort_buffer_size = 3M
-
Conexiones Màximas
- MySQL tiene una limitación en el número de conexiones simultáneas que
pueden mantener abiertas. Si está usando conexiones persistentes ,cada
proceso de Apache se mantendrá una conexión abierta a MySQL.
Esto significa que usted necesita para establecer el número máximo de
conexiones en MySQL a igual o mayor que el número de procesos de Apache
que pueden conectarse a la base de datos.En un entorno con clústeres,
debe sumar los procesos en cada servidor web a fin de determinar el
máximo. El establecimiento de 400 conexiones se muestra a continuación.
max_connections = 400 max_connections = 400
-
Cachí© de consultas
- MySQL es capaz almacenar en cachí© los resultados de una consulta.
La próxima vez que la misma consulta se ejecuta el resultado es devuelto
inmediatamente, ya que se lee del cachí© en lugar de la base de datos.
Para un sitio de lectura intensiva, esto puede proporcionar una importante
mejora del rendimiento.Para habilitar el cachí© de consultas, establecer
el tipo de “1″:
query_cache_type = 1
Puede configurar el tamaño maximo de cada consulta que puede ser
almacenada en cachí©. Si el resultado de la consulta es mayor que el
límite de cachí© de consultas, los resultados no se guardaran.
Esto es normalmente establecido a 1M:
query_cache_limit = 1M
La cantidad de memoria disponible globalmente para el cache de consultas
se establece con el query_cache_size. Esto debería ser bastante grande
, y debe ser aumentado en tamaño para grandes bases de datos.
query_cache_size = 100M
Para ajustar la cachí© de consultas, use el comando SHOW STATUS. Esto
puede ser utilizado para determinar los ajustes que necesitan ser modificados
y para ver el efecto de alteraciones.
The show status command will show you if the query cache is heavily in
use and if you have free memory, which indicates whether the query
cache buffer settings should be increased or decreased.
El comando SHOW STATUS le mostrará si la cachí© de consultas está
muy en uso y si tiene memoria libre, lo que indica si el buffer del cachí©
de consultas debe ser aumentado o disminuido.
+-------------------------+----------+ +-------------------------+----------+
| Variable_name | Value | | Variable_name | Valor |
+-------------------------+----------+ +-------------------------+----------+
| Qcache_free_blocks | 34 | | Qcache_free_blocks | 34 |
| Qcache_free_memory | 16466312 | | Qcache_free_memory | 16466312 |
| Qcache_hits | 1313227 | | Qcache_hits | 1313227 |
| Qcache_inserts | 78096 | | Qcache_inserts | 78096 |
| Qcache_lowmem_prunes | 0 | | Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 3328 | | Qcache_not_cached | 3328 |
| Qcache_queries_in_cache | 140 | | Qcache_queries_in_cache | 140 |
| Qcache_total_blocks | 346 | | Qcache_total_blocks | 346 |
+-------------------------+----------+ +-------------------------+----------+
8 rows in set (0.00 sec) 8 filas en el conjunto (0,00 segundos)
-
Script para afinar y optimizar el rendimiento de MySQL
-
Este script toma la información de SHOW STATUS y SHOW VARIABLES para
producir recomendaciones para ajustar las variables de servidor.
Es compatible con todas las versiones de MySQL 3.23 y superior (incluyendo 5.1).
Actualmente se ocupa de recomendaciones de optimizacion para:
* Slow Query Log
* Max Connections
* Worker Threads
* Key Buffer
* Query Cache
* Sort Buffer
* Joins
* Temp Tables
* Table (Open & Definition)
* Table Locking Cuadro de bloqueo
* Table Scans (read_buffer)
* Innodb Status
- tuning-primer.sh