"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > (Consulta SQL) Almacenamiento en caché frente a indexación en Express.js

(Consulta SQL) Almacenamiento en caché frente a indexación en Express.js

Publicado el 2024-11-08
Navegar:728

(SQL Query) Caching vs Indexing in Express.js

Hola desarrolladores: ¡Esta es mi primera publicación en esta plataforma! ?

Quería compartir una experiencia sorprendente que tuve con Express.js y SQL. Soy un desarrollador principiante y, mientras trabajaba en la API de mi proyecto, manejaba más de 200.000 solicitudes de API por día. Inicialmente, configuré una base de datos SQLite (~400 MB) con una API Express.js y usé el almacenamiento en caché de Node.js para acelerar las cosas.

Al principio, el tiempo de respuesta para una consulta era de alrededor de 200-300 ms, ya que implicaba varios JOIN y búsquedas. Entonces, decidí realizar algunos experimentos para ver si podía mejorar el rendimiento.

Esto es lo que hice:

  • Eliminé el almacenamiento en caché del nodo.
  • Creé índices en 20 columnas en 5 tablas (mi base de datos tiene un total de 103 columnas en 5 tablas).

¡El resultado fue sorprendente! Después de la indexación, algunas de mis consultas más complejas, que involucraban múltiples JOIN, se ejecutaban en solo 3 a 5 ms.

Anteriormente, con almacenamiento en caché de Node:

  • La primera solicitud solía tardar entre 300 y 400 ms.
  • Las solicitudes posteriores tardarían entre 2 y 5 ms (debido al almacenamiento en caché).

Después, solo con índices SQLite:
cada solicitud solo toma 7-10 ms sin ningún almacenamiento en caché.

Ahora las consultas son consistentemente rápidas, ¡y esto también redujo la carga del servidor! Inicialmente, estaba ejecutando mi aplicación en un droplet de DigitalOcean con 4 GB de RAM y 4 vCPU. Pero después de optimizar las consultas SQL, puedo manejar cómodamente la misma carga de trabajo con solo 2 GB de RAM y 2 vCPU.

Sé que esto puede parecer simple, pero la indexación SQL adecuada marcó una diferencia tan grande en el rendimiento de las consultas que ya ni siquiera necesito depender del almacenamiento en caché. ?

Declaración de liberación Este artículo se reproduce en: https://dev.to/w3vish/sql-query-caching-vs-indexing-in-expressjs-40n6?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3