La sentencia EXPLAIN “explica” como son ejecutadas las consultas en MySQL. A través de la misma se puede saber si necesita leer toda la tabla, si se utilizan índices, el número de filas exploradas e información extra.
El uso de EXPLAIN puede servir mucho para optimizar cada una de las consultas que realicen nuestras aplicaciones y mejorar el desempeño de la misma, ya sea escribiendo de mejor forma las consultas o agregando índices a las tablas cuando así lo requieran.
Acostumbrado a utilizar MySQL, cuando tuve que hacer unas pequeñas cosas en SQL Server, lo primero que empecé a extrañar fue el comando describe.
El comando describe en MySQL me permite conocer la estructura de una tabla. Si bien en SQL Server lo podía hacer navegando por la sysobjects, yo heredaba mis vicios de MySQL.
No quedaba otra alternativa que escribir por cuenta propia un stored “describe”. Por suerte, esto ya estaba hecho y publicado en la web.
El tema de excepciones no suele ser del gusto de lor programadores dada la cantidad de condiciones a las que se someten sus aplicaciones durante su ejecución. Al momento de tratar un condición, podemos tratarla según dos enfoques:
Tomando en enfoque optimista, analizaremos el caso de un stored procedure en MySQL que ejecute una INSERT, y si el mismo dio error (por ejemplo por PK duplicada) realice un UPDATE. Como se observa, cumple con el enfoque:
Para hacer esto veremos un poco de handlers en MySQL.
(más…)