Too Cool for Internet Explorer

IBM recomienda CakePHP 4

Hora y Fecha: Noviembre 22, 2006 @ 1:19 am Autor: Moisés Maciá
Categorías:
816 views

Vaya lujazo, IBM ha dedicado nada menos que 5 artículos al desarrollo de aplicaciones con CakePHP en su portal IBM’s developerWorks, un framework en el que llevo colaborando algún tiempo (aunque todavía no he ganado el privilegio necesario para subir cosas directamente al SVN).

Los artículos de la serie son:

  • Parte 1: configuración, puesta en marcha de CakePHP y una pequeña aplicación de login.
  • Parte 2: cubre el scaffolding, la herramienta Bake y las listas de control de acceso (ACL).
  • Parte 3: sobre Sanitize y cómo crear aplicaciones seguras filtrando los datos de entrada, el componente Security y cómo manejar peticiones mal formadas y temas avanzados de validación.
  • Parte 4: cubre el componente Session, mostrando tres mecanismos para guardar datos de estado, así como el componente Request Handler para manejar multiples tipos de peticiones (navegadores embebidos, peticiones XML, peticiones HTML, etc).
  • Parte 5: cacheado de vistas y layouts.

Los artículos se encuentran aquí (de momento sólo el primero). Hace falta registrarse para verlos (el registro es incomodo pero gratuito).

Tiembla Rails :)



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

Hora y Fecha: @ 12:11 am Autor: Moisés Maciá
Categorías:
652 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.




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