No hay tiempo para hablar acerca de cómo crear tablas optimizado para dar mejores resultados. Me acuerdo de que sólo los campos indexados mejorar mucho el tiempo de ejecución. En lugar de hablar algunas pequeño truco para que sea más rendimiento que MySQL es usualmente instalado en la mayoría de distribución sin demasiados parámetros de sintonización. La información se refieren una distro de Linux, pero se puede adaptar fácilmente a otros sistemas operativos.
El fichero de configuración normalmente se encuentra en / etc / my.ini.
Eempio de 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
# Por defecto a usar la contraseña antigua para mantener la compatibilidad con el formato mysql 3.x
# Clientes (aquellos que utilizan el paquete de compatibilidad mysqlclient10).
old_passwords = 1
[mysql.server]
user = mysql
basedir = / var / lib
[mysqld_safe]
err-log = / var / log / mysqld.log
pid-file = / var / run / mysqld / mysqld.pid
búferes: la amortiguación de cualquier incremeto tendrá una base de datos mucho más rápido. A continuación, establezca los topes sobre la base de la cantidad de memoria disponible, teniendo en cuenta el consumo realizado por el sistema operativo y otras aplicaciones y servicios en uso. Si asignar demasiada memoria aunque no tiene una disposición que puede ejecutar en el desempeño global del sistema.
Wait_timeout: representa el tiempo que transcurre antes de que se cierra automáticamente conectarse a MySQL, debido a la inactividad. Menor número es un mejor rendimiento. En este caso también debe desempeñar el tipo de conexiones y sus presuntos tiempo para calibrar el mejor parámetro.
back_log: controla el número de conexiones simultáneas que puede sostener al mismo tiempo crea nuevas Mysql hilo. Cuanto menor sea el número, mayor es la velocidad. Cuidado, es fácil de no degradar el rendimiento mediante el establecimiento de este parámetro correctamente, utilice sólo cuando sea absolutamente necesario.
Max_user_connections: Establece el número máximo de conexiones permitidas a un usuario. Es muy útil en sistemas en el mismo servidor MySQL tiene acceso a múltiples usuarios simultáneamente.
Delayed_queue_size: número de filas con INSERT DELAYED. Será menor a lo largo de las líneas, más rápido Mysql.
Sort_buffer_size: establece el tamaño del búfer asignado a la aplicación de las cláusulas ORDER BY y GROUP BY. Para realizar consultas más eficientes que establece este parámetro en un valor superior a 2M.
Table_cache: controla el número de tablas abiertas para todos los hilos, el aumento de esta variable aumentará las tablas cargadas de manera simultánea y la ejecución de Mysql será mucho más rápido. Atención a este parámetro, los sistemas operativos tienen un límite de enlaces a los archivos abiertos a la vez, en caso de que supere este límite, puede incurrir en cualquier mal funcionamiento del sistema.
Thread_cache_size: Fija el número de hilos para mantener en la memoria caché. Esta característica hace que el uso de hilos muy rápido.
El comando SHOW STATUS nos ayuda a controlar en tiempo real las variables que más que otros para ayudarnos a comprender cuáles son las mejoras más significativas que podemos hacer:
- Handler_read_first: Indica cuántas veces el primer registro se lea de una tabla. Si esto ocurre con frecuencia, esto significa que la tabla no se indexan correctamente.
- Innodb_buffer_pool_wait_free: indica el número de veces que MySQL tiene que esperar a la descarga de páginas de memoria. Si el valor de retorno es alta, el tamaño del pool de buffer no se ha configurado correctamente para la cantidad de operaciones de escritura sufrido por el servidor.
- Key_reads: indica el número de veces que accede a MySQL el sistema de archivos de base de datos de índices. Esto ralentiza la velocidad de ejecución de la consulta, por lo que si este valor es alto entonces significa que la clave de amortiguación es demasiado pequeño y debe aumentarse.
- Max_used_connections: Indica el número máximo de conexiones que MySQL ha de abrir durante el último arranque. Por un lado, esto representa un verdadero punto de referencia (que ayuda a decidir el número máximo de conexiones que puede soportar el servidor) y la otra se presenta como un analizador de tráfico.
- Open_tables: Indica el número actual de las mesas abiertas. Este valor debe ser analizado en combinación con el tamaño de la caché de la tabla. Normalmente, el tamaño de table_cache debería fijarse más altos para esta variable. Si el valor de open_tables es mucho menor que table_cache para evitar problemas de rendimiento, es por lo tanto, también reducir el tamaño de la caché. Si el valor de open_tables es muy elevada y se aproxima al tamaño de la caché, y luego elevarlo table_cache.
- Select_full_join: El número de unirse MySQL ha realizado para satisfacer las demandas de los clientes. Un valor alto indica que en lugar de utilizar índices, MySQL se ha visto obligada a realizar la plena adhesión. Esto sugiere la necesidad de un fuerte índice de estas tablas.
- Slow_queries: indica el número de consultas que llevó más tiempo de lo usual por hacer. Un valor alto nos debe llevar a analizar el log de consultas lentas para identificar cuáles son las consultas lentas para optimizar.
- Threads_connected: Indica el número total de clientes que están conectados con el servidor en ese momento.
- Created_tmp_disk_tables: indica el número de tablas temporales, las cuales fueron creadas en el disco en lugar de la memoria. Dado que las tablas de acceso en un disco es generalmente más lento que la memoria, el contenido de la variable es inversamente proporcional a la velocidad con la que las consultas se están ejecutando el comando CREATE TEMPORARY TABLE.
- Uptime: Muestra el número de segundos en el servicio.



































