Una forma muy elemental, pero muy práctica, de calcular el tamaño de una base de datos MySQL es haciendo la suma de los tamaños de los espacios de datos e índices de cada tabla, a partir del resultado de un SHOW TABLE STATUS.

(más…)

En la instalación de NetBeans no viene por defecto el driver de Oracle, por lo tanto, es necesario bajarlo de la página de drivers de oracle, el cual escogemos ojdbc14.jar. Luego para hacer la conexión a Oracle necesitamos el puerto (por default 1521), hostname y  el sid (service id).

Finalmente, desde NetBeans, en la pestaña de servicios, en el nodo de Databases, Drivers, botón derecho del mouse “new driver”, seleccionar el driver y con eso lo tenemos instalado.

Si conectarse con SQL Server 2005, hay que realizar el mismo procedimiento, pero descargando el Microsoft SQL Server 2005 JDBC Driver

Basado en el texto original de Pain Dev

Los índices suelen ser la primer opción al momento de optimizar una base de datos MySQL. Sin embargo, no se trata de crear índices así porque si sobre cualquier campo.

Los siguientes, son una serie de consejos a la hora de crear índices:

  • Indexar solo las columnas que lo ameriten: indexar solo las columnas sobre las que se realizan búsquedas, es decir, aquellas que se utilizan en un WHERE o un JOIN.
  • Utilizar índices únicos: los índices trabajan mejor sobre columnas con valores únicos y peor en aquellas que tienen muchos duplicados.
  • Utilizar índices cortos: prestar especial cuidado al momento de utilizar índices sobre campos CHAR. Para tal caso, no es conveniente indexar columnas enteras, si la mayor parte de los valores son únicos dentro de los 10 o 20 primeros caracteres, basta con indexar esa cantidad de caracteres.
  • No abusar de los índices: los índices deben ser actualizados, y reorganizados cuando se realicen INSERTs, UPDATEs y DELETEs. lo que ralentiza el sistema.
  • Considerar el tipo de comparaciones a realizar en un registro: los índices se utilizan con los operadores <, <=, =, >=, >, BETWEEN y LIKE, no así con las funciones. Por lo tanto, si se utiliza la función STRCMP() para la comparación de cadenas, es innecesario un índice.

Vía: tufuncion

A continuación veremos un pequeño ejemplo de trigger en MySQL, que guarda los datos de una tabla en otra, cada vez que estos se modifican. La segunda tabla puede servir para el seguimiento y auditoría de la modificaciones realizadas en la tabla principal.

(más…)

MySQL 5.1

Sun anuncia la versión 5.1 de MySQL durante la primer conferencia de prensa organizada desde que adquirió MySQL.

Según indican, si bien 5.1 suena como una versión incremental, tiene algunas funciones muy importantes, que hacen que tranquilamente se pudiera haber llamado 6.0.

Además de corrección de errores y mayor fiabilidad, las novedades de la versión incluyen:

  • Particionado de tablas
  • Programación de eventos
  • Replicación basada en filas

(más…)

SQLite es una BD transacional bajo la forma de una librería que se embebe en las aplicaciones, sin necesidad de contar con un servidor y sin configuración. La misma está escrita en C y el código es de dominio público.

Son muchas las aplicaciones que utilizan SQLite, desde aplicaciones para Escritorio, como PDAs, telefonos celulares y hasta reproductores MP3.

(más…)

Instalar Oracle Database Express Edition en Ubuntu (o más bien, en Debian) es muy fácil, a continuación detallo los pasos realizados:

  • Agregar a /etc/apt/sources.list el repositorio de Oracle: deb http://oss.oracle.com/debian unstable main non-free
  • Ejecutar:

(más…)

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.