MYSQL : OPTIMIZACION



Optimizar tablas


Reorganiza el almacenamiento físico de los datos de la tabla y los datos de índice asociados, para reducir el espacio de almacenamiento y mejorar la eficiencia de E / S cuando se accede a la tabla. Los cambios exactos realizados en cada tabla dependen del motor de almacenamiento utilizado por esa tabla.



SELECT TABLE_SCHEMA,TABLE_NAME
FROM TABLES WHERE TABLE_SCHEMA NOT IN ("information_schema","mysql") AND Data_free > 0



/etc/my.cnf

variables más importantes para optimizar MySQL :

[mysqld]

max_connections
wait_timeout
thread_cache_size

table_cache
key_buffer_size
query_cache_size
tmp_table_size



La creación de índices útiles es uno de los métodos más importantes para lograr un mejor rendimiento de las consultas. Los índices útiles ayudan a encontrar los datos con menos operaciones de E/S de disco y un menor uso de los recursos del sistema.


Para crear índices útiles, debe comprender cómo se utilizan los datos, los tipos y las frecuencias de ejecución de las consultas y cómo el procesador de consultas puede utilizar los índices para encontrar los datos con rapidez.


Una vez elegidos los índices que creará, examine las consultas más importantes, cuyo rendimiento es el factor que más afecta a la experiencia del usuario. Cree los índices específicamente para ayudar a estas consultas. Después de agregar un índice, vuelva a ejecutar la consulta para comprobar si el rendimiento ha mejorado. En caso negativo, quite el índice.

Al igual que en la mayoría de las técnicas de optimización del rendimiento, existen ventajas e inconvenientes. Por ejemplo, con más índices, es probable que las consultas SELECT se ejecuten con mayor rapidez. Sin embargo, las operaciones DML (INSERT, UPDATE y DELETE) reducirán su velocidad porque se deben mantener más índices con cada operación. Por consiguiente, si las consultas son principalmente instrucciones SELECT, el uso de más índices puede ser positivo. Si su aplicación lleva a cabo muchas operaciones DML, el número de índices que cree debería ser más moderado.


SELECT CONCAT('Name FROM City WHERE Name = "',Name,'";') FROM City LIMIT 5;



REFERENCIAS :

http://www.dataprix.com/blogs/carlos/mejora-rendimiento-mysql-ajustando-algunos-par-metros

http://www.dataprix.com/blogs/carlos/defragmentar-tablas-para-optimizar-mysql

https://major.io/mysqltuner/

http://www.day32.com/MySQL/

http://blog.codenode.com/2015/01/hack-mysql-has-been-retired.html

https://mysqltuner.codeplex.com/

http://devtroce.com/2011/08/04/tutorial-basico-para-interpretar-el-plan-de-ejecucion-de-sql-server/

https://grimpidev.wordpress.com/2008/10/28/entender-el-plan-de-ejecucion-en-sql-server-20052008/

Comentarios

Entradas populares de este blog

Para que sirve la N en SQL Server

MYSQL : CURSORES

SSIS- Package con origen de datos Excel dinámicos