"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > (Requête SQL) Mise en cache et indexation dans Express.js

(Requête SQL) Mise en cache et indexation dans Express.js

Publié le 2024-11-08
Parcourir:409

(SQL Query) Caching vs Indexing in Express.js

Bonjour les développeurs, Ceci est mon premier article sur cette plateforme ! ?

Je voulais partager une expérience surprenante que j'ai eue avec Express.js et SQL. Je suis un développeur débutant et, tout en travaillant sur l'API de mon projet, je traitais plus de 200 000 requêtes API par jour. Initialement, j'ai configuré une base de données SQLite (~ 400 Mo) avec une API Express.js et utilisé la mise en cache Node.js pour accélérer les choses.

Au début, le temps de réponse d'une requête était d'environ 200 à 300 ms, car elle impliquait plusieurs JOIN et recherches. J'ai donc décidé de faire quelques expériences pour voir si je pouvais améliorer les performances.

Voici ce que j'ai fait :

  • J'ai supprimé la mise en cache des nœuds.
  • J'ai créé des index sur 20 colonnes réparties dans 5 tables (ma base de données a un total de 103 colonnes dans 5 tables).

Le résultat était surprenant ! Après l'indexation, certaines de mes requêtes les plus complexes, impliquant plusieurs JOIN, étaient exécutées en seulement 3 à 5 ms.

Auparavant, avec la mise en cache des nœuds :

  • La première requête prenait environ 300 à 400 ms.
  • Les requêtes ultérieures prendraient 2 à 5 ms (en raison de la mise en cache).

Après, avec uniquement les index SQLite :
chaque requête ne prend que 7-10 ms sans aucune mise en cache.

Maintenant, les requêtes sont toujours rapides, ce qui réduit également la charge du serveur ! Au départ, j'exécutais mon application sur un droplet DigitalOcean avec 4 Go de RAM et 4 vCPU. Mais après avoir optimisé les requêtes SQL, je peux gérer confortablement la même charge de travail avec seulement 2 Go de RAM et 2 vCPU.

Je sais que cela peut paraître simple, mais une indexation SQL appropriée a fait une si grande différence dans les performances des requêtes que je n'ai même plus besoin de compter sur la mise en cache. ?

Déclaration de sortie Cet article est reproduit sur : https://dev.to/w3vish/sql-query-caching-vs-indexing-in-expressjs-40n6?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3