1. Selección del tipo de motor de almacenamiento más adecuado para mejorar el desempeño
1.1. MySQL permite principalmente dos motores de almacenamiento, MyISAM e InnoDB. Entre ellos la principal diferencia es si son transaccionales, es decir, si permiten el uso de las cláusulas COMMIT para confirmar un conjunto de comandos SQL y ROLLBACK para deshacerlos o invalidarlos, de modo que las transacciones sean íntegras. Son motores ideales para sistemas con muchas modificaciones y lecturas concurrentes. Es el caso de InnoDB, que es actualmente el motor por defecto en el servidor MySQL. Por otro lado, el motor MyISAM es no transaccional, lo que permite más rapidez y menos requisitos de memoria y almacenamiento a costa de una menor seguridad en las operaciones sobre los datos.
2. Uso y verificación del plan de ejecución de consultas (explain) para mejorar el desempeño
2.1. Esta sentencia nos permitirá obtener información sobre el plan de ejecución de nuestras consultas realizadas contra nuestra la base de datos. De esta forma, podremos analizar este plan de ejecución para saber cómo optimizar la ejecución de dichas consultas. La sentencia EXPLAIN devuelve una tabla con una serie de filas con información sobre cada una de las tablas empleadas en la consulta a la que acompaña. EXPLAIN se puede emplear en las siguientes consultas: SELECT, DELETE, INSERT, REPLACE y UPDATE. Para emplear esta sentencia, bastará con poner EXPLAIN seguido de la consulta que queremos analizar.
3. Recomendaciones para mejorar el desempeño de las consultas en la base de datos
3.1. Uno de los problemas más habituales con servidores de bases de datos tiene que ver con la existencia de consultas lentas o que consumen muchos recursos. Es por ello fundamental saber cómo se van a ejecutar y qué recursos necesitarán. Para ello disponemos del comando EXPLAIN que nos permitirá obtener una idea aproximada de las necesidades de una consulta. Así mismo debemos monitorizar su funcionamiento mediante las distintas herramientas comentadas en la siguiente sección, entre ellas el comando SHOW PROFILE, que nos muestra información sobre los recursos utilizados por cada comando SQL y el registro de consultas lentas.
4. Uso de índices para mejorar el desempeño
4.1. Un índice de una base de datos es una estructura de datos que mejora la velocidad de las operaciones, permitiendo un rápido acceso a los registros de una tabla. Al aumentar drásticamente la velocidad de acceso, se suelen crear sobre aquellos campos sobre los cuales se hagan frecuentes búsqueda. Para determinar qué tablas pueden beneficiarse del uso de índices, debe analizar las consultas de su base de datos. La instrucción EXPLAIN SELECT te ayuda a hacer esto.
5. ¿Por qué es necesario un buen desempeño de las consultas?
5.1. Es importante hacer un diseño óptimo de nuestras bases de modo que sea más fácil construir aplicaciones óptimas, así como aumentar su tamaño sin perjudicar el rendimiento. Cuando hablamos de optimización de consultas nos referimos a mejorar los tiempos de respuesta en un sistema de gestión de bases de datos relacional, pues la optimización es el proceso de modificar un sistema para mejorar su eficiencia o también el uso de los recursos disponibles. En bases de datos relacionales el lenguaje de consultas SQL es el más utilizado por el común de los programadores y desarrolladores para obtener información desde la base de datos.
6. Importancia del diseño de las estructuras de tablas para mejorar el desempeño
6.1. Las tablas son objetos de base de datos que contienen todos sus datos. En las tablas, los datos se organizan con arreglo a un formato de filas y columnas, similar al de una hoja de cálculo. Cada fila representa un registro único y cada columna un campo dentro del registro. La confiabilidad de los datos depende de la estructura de la tabla, mientras que la creación de claves primarias y únicas garantiza la uniformidad en la información almacenada. Puede evitar la replicación de datos formando una tabla de valores probables y usando una clave para indicar el valor. Entonces, siempre que el valor cambia, la alteración ocurre solo una vez en la tabla principal.