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

  1. 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'.
  2. 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.
  3. Explain: Antes de dar por buena una consulta, usa EXPLAIN SELECT.... Si en la columna type dice ALL, tu consulta está escaneando toda la tabla (lento). Si dice ref o fulltext, está usando el índice (rápido).

Cuándo indexar

  • Columnas usadas en WHERE.
  • Columnas usadas en JOIN.
  • Columnas usadas en ORDER BY.

Enlaces Internos


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.