„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > (SQL-Abfrage) Caching vs. Indizierung in Express.js

(SQL-Abfrage) Caching vs. Indizierung in Express.js

Veröffentlicht am 08.11.2024
Durchsuche:645

(SQL Query) Caching vs Indexing in Express.js

Hallo Entwickler, das ist mein erster Beitrag auf dieser Plattform! ?

Ich wollte eine überraschende Erfahrung mit Express.js und SQL teilen. Ich bin ein Anfänger-Entwickler und habe während der Arbeit an der API für mein Projekt über 200.000 API-Anfragen pro Tag bearbeitet. Zunächst habe ich eine SQLite-Datenbank (~400 MB) mit einer Express.js-API eingerichtet und Node.js-Caching verwendet, um die Dinge zu beschleunigen.

Anfangs betrug die Antwortzeit für eine Anfrage etwa 200-300 ms, da es sich um mehrere JOINs und Suchen handelte. Deshalb habe ich beschlossen, einige Experimente durchzuführen, um zu sehen, ob ich die Leistung verbessern kann.

Das habe ich getan:

  • Ich habe das Node-Caching entfernt.
  • Ich habe Indizes für 20 Spalten in 5 Tabellen erstellt (meine Datenbank hat insgesamt 103 Spalten in 5 Tabellen).

Das Ergebnis war überraschend! Nach der Indizierung wurden einige meiner komplexeren Abfragen, die mehrere JOINs beinhalteten, in nur 3–5 ms ausgeführt.

Zuvor mit Node-Caching:

  • Die erste Anfrage dauerte früher etwa 300–400 ms.
  • Nachfolgende Anfragen würden 2–5 ms dauern (aufgrund des Cachings).

Danach, nur mit SQLite-Indizes:
Jede Anfrage dauert nur 7–10 ms ohne Caching.

Jetzt sind die Abfragen konstant schnell, und das reduziert auch die Serverlast! Ursprünglich habe ich meine App auf einem DigitalOcean-Droplet mit 4 GB RAM und 4 vCPUs ausgeführt. Aber nachdem ich die SQL-Abfragen optimiert habe, kann ich die gleiche Arbeitslast problemlos mit nur 2 GB RAM und 2 vCPUs bewältigen.

Ich weiß, das hört sich vielleicht einfach an, aber die richtige SQL-Indizierung hat einen so großen Unterschied in der Abfrageleistung gemacht, dass ich mich nicht einmal mehr auf Caching verlassen muss. ?

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/w3vish/sql-query-caching-vs-indexing-in-expressjs-40n6?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3