Una base de datos sin índices es como una biblioteca sin catálogo: tienes que revisar libro por libro. En 2026, esto es inaceptable.
Solución Rápida (Code Snippet)
Ejecuta estos comandos en tu terminal MySQL para acelerar tus búsquedas.
-- 1. Índice normal (B-Tree) para búsquedas que empiezan con el término
-- Optimiza: WHERE nombre LIKE 'juan%'
CREATE INDEX idx_nombre ON usuarios(nombre);
-- 2. Índice Full-Text para búsquedas en cualquier parte del texto
-- Optimiza: WHERE MATCH(descripcion) AGAINST('teclado')
ALTER TABLE productos ADD FULLTEXT(descripcion);
-- 3. Ejemplo de consulta Full-Text (mucho más rápida que LIKE)
SELECT * FROM productos
WHERE MATCH(descripcion) AGAINST('teclado' IN NATURAL LANGUAGE MODE);
Cómo funciona
- B-Tree Index: Es el tipo por defecto. Funciona muy bien con el operador
LIKE 'texto%'(prefijo), porque MySQL sabe exactamente dónde empieza la palabra. Falla si pones el porcentaje al inicio:LIKE '%texto'. - Full-Text Index: Crea un mapa de todas las palabras únicas. Es la herramienta correcta para buscadores de blogs o tiendas donde el usuario busca palabras sueltas.
- Explain: Antes de dar por buena una consulta, usa
EXPLAIN SELECT.... Si en la columnatypediceALL, tu consulta está escaneando toda la tabla (lento). Si dicerefofulltext, está usando el índice (rápido).
Cuándo indexar
- Columnas usadas en
WHERE. - Columnas usadas en
JOIN. - Columnas usadas en
ORDER BY.
Enlaces Internos
- Aplica estos índices en tu Buscador en Tiempo Real.
- Aprende a monitorear cambios con Triggers en MySQL.
Preguntas Frecuentes
¿Qué es el ‘Full Table Scan’?
Es cuando MySQL tiene que leer cada fila de la tabla porque no encontró un índice útil. Es el enemigo número uno del rendimiento.
¿Puedo indexar columnas de tipo TEXT?
Solo mediante índices Full-Text. Los índices normales tienen un límite de longitud (prefijo) para columnas muy largas.