Cómo acelerar 10x la velocidad de búsqueda con ingeniería adecuada
(engineering.ab180.co)Un caso de mejora de un servicio de búsqueda con una ingeniería ajustada al contexto, sin excesos.
Identificación del problema
- Servicio de búsqueda cada vez más lento
- Identificación de la complejidad causada por el uso de
Joiny expresiones regulares para la búsqueda
Estrategia de resolución
- Al principio se consideró usar Elasticsearch
- Había un problema de costos porque era necesario manejar sincronización en tiempo real con la DB principal y una gran cantidad de datos de conservación permanente
- Se construyó una tabla simplificada dedicada a búsqueda y se armó la consulta de búsqueda
- Se aplicó un trigger de MySQL para cargar los datos
Resultados
- Una consulta que tardaba 3 minutos se redujo a 2 segundos
- Entrega rápida de valor al cliente con una ingeniería sin excesos
2 comentarios
Parece que aplicaron el método de crear varias tablas para un mismo conjunto de datos y separar sus usos, algo que se usa al construir sitios grandes con mucho tráfico.
A veces se divide en dos, por ejemplo para clientes y para administradores, pero este parece ser un buen caso de aplicación al definir un uso específico para búsqueda.
No sé mucho del área de bases de datos, así que cuando leo este tipo de artículos informativos me parecen sorprendentes y entretenidos.