links for 2007-07-29

links for 2007-07-28

links for 2007-07-27

MySQL Index Analyzer: analiza los índices de MySQL

MySQL Index Analyzer es una sencilla aplicación creada en Java que nos analiza los índices de una base de datos en MySQL. Comprueba qué índices no son útiles desde la perspectiva de la BD.
mia.png
Por ejemplo, para todas índices de las tablas que cubre los campos que son primary key, en este caso es útil porque este índice no se usará nunca por el optimizador.
A parte de un informe, nos devuelve scripts para resolver los problemas.

MySQL Index Analyzer

Akelos: framework PHP

akelos.pngÚltimamente estamos mostrando muchos frameworks PHP, cuanta más variedad mejor, aunque claro, luego hay más problemas tenemos para decidirnos. Akelos es un framework basado en el diseño Model-View-Controller, desde Ajax en la vista hasta las peticiones y respuestas en el controlador.
Akelos está pensado para aquellos que les gusta desarrollar aplicaciones, para programadores de Ruby On Rails que necesitan programar algo en PHP, para necesidades de coste bajo y para crear aplicaciones multi-idioma.
Entre las ventajas que ofrece nos encontramos la rapidez con la que se generan aplicaciones algo complejas, compatible con PHP4 y PHP5, no son necesarias configuraciones complejas y soporte para MySQL, PostgreSQL y SQLite.
Akelos
Vía / PHPDeveloper.org

|

YSlow: añadido de Firebug de Yahoo

YSlow es un plugin para Firefox que añade una nueva pestaña a Firebug, la cual realiza informes de las páginas que visitamos y nos indica por qué es lenta según algunas reglas de rendimiento.
yslow.png
Muestra una evaluación de cada posible regla de rendimiento, mostrando estadísticas de ellas. Además indica que componentes están instalados y hace una comparativa entre la página visitada con caché o sin caché.
Una extensión muy a tener en cuenta.
YSlow
Vía / OpenSourceCommunity.org

Consejos MySQL

El problema que tenemos muchos a la hora de desarrollar es no profundizar en las características que nos ofrece una herramienta. En este caso, solemos realizar una serie de consultas en MySQL que se podrían optimizar para que fuera todo más rápido.

Búsqueda de palabras

/* Muy rápida */
SELECT * FROM tabla WHERE MATCH (`campo`) AGAINST ('palabra')
/* Rápida */
SELECT * FROM tabla WHERE MATCH (`campo`) AGAINST ('+palabra' IN BOOLEAN MODE)
/* Lentas */
SELECT * FROM tabla WHERE RLIKE '(^| +)palabra($| +)'
/* o */
SELECT * FROM tabla WHERE
RLIKE '([[:space:]]|[[:<:]])palabra([[:space:]]|[[:>:]])'

Búsquedas contenidas

/* Muy rápida */
SELECT * FROM tabla WHERE MATCH (`campo`) AGAINST ('palabra*' IN BOOLEAN MODE)
/* Rápida */
SELECT * FROM tabla WHERE FIELD LIKE 'palabra%'
/* Lentas */
SELECT * FROM tabla WHERE MATCH (`campo`) AGAINST ('*palabra*' IN BOOLEAN MODE)
/* o */
SELECT * FROM tabla WHERE campo LIKE '%palabra%'

Número de registros

/* Muy rápida */
SELECT SQL_CALC_FOUND_ROWS * FROM tabla WHERE condición LIMIT 0, 10
SELECT FOUND_ROWS()
/* Rápido */
SELECT * FROM tabla WHERE condición LIMIT 0, 10
SELECT COUNT(clave) FROM TABLE WHERE condición

Lo más lento es recuperar los registros y luego un script (PHP por ejemplo) contarlos.

PHP Mysql tips

Gracias diarioTHC por el enlace