Inyección SQL

Un poco de humor con SQL Inyection…

  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

Al mejor estilo Google Docs, WWW SQL Designer es una herramienta web para crear y graficar esquemas de bases de datos directamente de tu browser, sin necesidad de ningún programa externo (ni siquiera flash). Solo necesitas que tener habilitado JavaScript.

WWW SQL designer trabaja perfectamente con cualquier Mozilla, IE, Safari y Opera. Soporta la creación de tablas, campos con tipo de datos, PKs, FKs, comentarios e índices.

Pueden visitar la página oficial, probar una demo on line o bajarlo para correr en un servidor web (Apache, IIS) local.

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.

(more…)

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.

(more…)

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.
(more…)


Búsqueda personalizada

Suscripción

       Add to Google Reader or Homepage

      

       Subscribe in NewsGator Online

       Add to netvibes

       Subscribe in Bloglines

Categorias

Licencia de uso

Usuarios

       web counter