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.

(más…)

Describe en SQL Server

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.

(más…)

Excepciones en MySQL

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:

  • Enfoque conservador: consiste en comprobar primero y luego actuar.
  • Enfoque optimista: consiste en probar primero y analizar despues.

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:

  1. Intentamos ejecutar el INSERT
  2. Luego analizamos sus consecuencias y tomamos medidas correctivas

Para hacer esto veremos un poco de handlers en MySQL.
(más…)