Acelerando a velocidade de busca em 10x com engenharia na medida certa
(engineering.ab180.co)Este é um caso de melhoria de um serviço de busca com uma engenharia adequada ao contexto, sem excessos.
Reconhecimento do problema
- Serviço de busca ficando mais lento
- Identificação de problemas de complexidade causados pelo uso de
Joine expressões regulares para busca
Estratégia de solução
- Inicialmente, considerou-se usar Elasticsearch
- Havia questões de custo, já que era necessário lidar com sincronização em tempo real com o banco de dados principal e com um grande volume de dados de preservação permanente
- Foi criada uma tabela simplificada dedicada à busca e construída a consulta de busca
- Aplicação de MySQL Trigger para carregamento dos dados
Resultados
- Uma consulta que levava 3 minutos foi reduzida para 2 segundos
- Entrega rápida de valor ao cliente com uma engenharia sem excessos
2 comentários
Parece que aplicaram a abordagem de criar várias tabelas para um mesmo dado e separar seus usos, algo usado na construção de sites de grande porte com muito tráfego.
Às vezes se divide em duas, como para cliente e para administrador, mas aqui é um bom caso de aplicação ao definir um uso específico para busca.
Não entendo muito da área de bancos de dados, então acho fascinante e divertido ler textos informativos como este.