Accélérer la recherche de 10x avec une ingénierie adaptée
(engineering.ab180.co)Voici un cas d’amélioration d’un service de recherche grâce à une ingénierie mesurée et adaptée au contexte.
Identification du problème
- Service de recherche qui ralentit
- Identification d’un problème de complexité dû aux
JOINet à l’utilisation d’expressions régulières pour la recherche
Stratégie de résolution
- Elasticsearch avait d’abord été envisagé
- Il y avait toutefois un enjeu de coût, car il fallait gérer la synchronisation en temps réel avec la base principale ainsi qu’un grand volume de données conservées durablement
- Mise en place d’une table simplifiée dédiée à la recherche et construction des requêtes de recherche
- Application de triggers MySQL pour alimenter les données
Résultats
- Une requête qui prenait 3 minutes a été ramenée à 2 secondes
- Livraison rapide de valeur client grâce à une ingénierie sans excès
2 commentaires
Ils ont appliqué une méthode souvent utilisée pour construire de très gros sites à fort trafic, qui consiste à créer plusieurs tables pour une même donnée afin d’en séparer les usages.
On les divise parfois en deux, par exemple pour les clients et pour les administrateurs, mais ici c’est un bon cas d’application où l’usage a été spécifiquement défini pour la recherche.
Je ne connais pas très bien le domaine des bases de données, donc je trouve ce genre d’article informatif surprenant et intéressant à lire.