Too Cool for Internet Explorer

Cosas a tener en cuenta cuando diseñamos un modelo de datos

Hora y Fecha: Noviembre 22, 2006 @ 12:11 am Autor: Moisés Maciá
Categorías:
735 views

… y que la mayoría de los “programadores” ni siquiera saben que existen:

  1. Crea indices para las columnas, pero hazlo con cabeza. Muchos indices pueden hacer que las inserciones, borrados y actualizaciones sean operaciones muy lentas.
  2. Utiliza EXPLAIN para optimizar las consultas y observar como afectan los indices al rendimiento.
  3. Minimiza los datos que devuelven las consultas. No utilices SELECT *, trocea los datos en páginas con LIMIT e intenta agrupar varias consultas en una sola con UNION o JOIN.
  4. El mayor cuello de botella de las bases de datos suele ser el disco duro. Si necesitas rendimiento considera montar un RAID para datos y otro para los logs, así como dedicar una máquina únicamente para la BD. Manejar tablas temporales en memoria también mejora notablemente el rendimiento.
  5. LOAD DATA funciona mucho más rápido que INSERT: por cada inserción se actualiza el árbol de indices, así que si no te queda mas remedio que hacer muchos INSERT seguidos, desactiva los indices y actualizalos al terminar.
  6. No selecciones columnas de tipo BLOB o TEXT directamente, hazlo siempre a través de una tabla relacionada. Cuando se borran filas con estos tipos de datos, las tablas tienden a fragmentarse. Analiza y reconstruye los indices al eliminar filas de este tipo.
  7. Normaliza tu modelo, por lo menos hasta la tercera forma normal. En ocasiones se degradan las formas normales de alguna relación para ganar rendimiento, pero eso sólo es cierto en determinado tipo de situaciones muy específicas. Normaliza siempre.
  8. Considera utilizar el tipo de datos ENUM en lugar de una tabla relacionada.
  9. La integridad referencial y abusar de los triggers baja el rendimiento de las consultas. Activalos cuando los necesites pero no abuses.
  10. Si puedes hacerlo con un procedimiento almacenado, hazlo.
  11. Prepara benchmarks y mide el rendimiento de tus consultas sobre datos reales.

Si todo esto te queda grande, contrata a un DBA.





« Anterior post: Esos pequeños hijos de puta | Próximo post: IBM recomienda CakePHP »

Un Comentario para “Cosas a tener en cuenta cuando diseñamos un modelo de datos”

penyaskito
26 de Noviembre de 2006 a las 4:22 am    

Me lo apunto… En Bases de Datos estoy muy pez…


Bad Behavior has blocked 383 access attempts in the last 7 days.