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.
Gracias diarioTHC por el enlace
El otro dÃa nos preguntaban una forma de migrar una base de datos Access a otra MySQL. En ese momento no conocÃa ninguna aplicación que pudiera hacerlo, pero hoy me he enterado que los propios de MySQL tienen MySQL Migration Toolkit, que permite mediante una serie de pasos realizar una migración de forma correcta.