Esta publicación tiene origen a partir de una consulta realizada por un compañero. Es usual que esta pregunta se la hagan aquellos que vienen con conocimientos adquiridos en Access, aunque en este caso se trataba de reescribir para SQL Server una consulta originalmente escrita en MySQL (IF en vez de IIF).

Luego de buscar un poco llegué a unas FAQs que dieron solución a este problema.

Te guste o no, las consultas que utilicen IIF (o IF en MySQL) deberán ser reescritas utilizando la expresión CASE.

(más…)

Lo que leeremos ahora es una solución bastante artesanal para tracear consultas SQL. Cuando leia mis feeds y leí el título de Cómo “tracear” consultas SQL entré inmediatamente debido a que desconocía un método para realizar esta tarea. Lo que suele suceder es que aveces queremos resolver los problemas de una forma prolija y elegante y lo cierto es que la solución puede ser bastante más rudimentaria pero muy ingeniosa.

Muchas veces suele ser tarea común la de consultar en MySQL el slow query log o verificar en tiempo real con un show processlist cual es esa consulta que está volviendo lento al servidor. Conocida la consulta, ¿como se cual es la aplicación que utiliza dicha consulta?. A menos que conozcamos muy bien nuestro sistema, debemos empezar a buscar en nuestros archivos y hacer algunos que otros grep recursivos hasta encontrar con la aplicación culpable de esa consulta lenta.

(más…)

Soy de destacar que las combinaciones que se pueden lograr con los comandos y cláusulas del lenguaje SQL no tiene fin. Muestra de ello son estas interesantes opciones que encontré para realizar un swap entre los valores de dos columnas distintas de una misma tabla en MySQL (tarea que parece facil pero que tiene cierta complejidad, aunque no tanta).

Las opciones disponibles y que se publican a continuación son dos, de todas formas, tomando estos ejemplos como base se pueden escribir más variantes. Así también, estos ejemplos se podrían hacer extensivos a un reemplazo de valores entre más de dos columnas.

sql

(más…)

A continuación, pongo a vuestra disposición un catálogo de Consultas SQL comunes escritas para MySQL:

(más…)

  1. Utilizar el comando EXPLAIN
  2. Utilizar permisos poco complejos: permite reducir la sobrecarga cuando los clientes ejecutan las sentencias
  3. Utilizar la función BENCHMARCH() para ver lo rápido que MySQL procesa la expresión
  4. Optimizar la cláusula WHERE: elimine paréntesis innecesarios. Use la opción SQL_SMALL_RESULT para indicarle al optimizador que el conjunto de datos a devolver es pequeño
  5. Ejecutar OPTIMIZE TABLE: defragmenta, repara y ordena los archivos
  6. Evitar columnas de longitud variable como VARCHAR, BLOB, and TEXT
  7. Utilizar INSERT DELAYED cuando los clientes no pueden esperar a que el INSERT se complete
  8. Priorizar las sentencias con INSERT LOW_PRIORITY y SELECT HIGH_PRIORITY
  9. Usar INSERT múltiple para insertar varias filas (INSERT INTO … VALUES (…),(…),(…) )
  10. Sincronizar los tipos de datos. Por ejemplo, que los tipos de datos de los campos utilizados en un JOIN sean los mismos.

Vía: 10 tips for optimizing mysql queries


Búsqueda personalizada


Categorías

Licencia de uso

Usuarios

       web counter