«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > (SQL-запрос) Кэширование и индексирование в Express.js

(SQL-запрос) Кэширование и индексирование в Express.js

Опубликовано 8 ноября 2024 г.
Просматривать:369

(SQL Query) Caching vs Indexing in Express.js

Привет, разработчики! Это мой первый пост на этой платформе! ?

Я хотел поделиться своим удивительным опытом работы с Express.js и SQL. Я начинающий разработчик и, работая над API для своего проекта, обрабатывал более 200 тысяч запросов API в день. Первоначально я настроил базу данных SQLite (~400 МБ) с API Express.js и использовал кеширование Node.js для ускорения работы.

Поначалу время ответа на запрос составляло около 200-300 мс, так как он включал несколько JOINов и поисков. Итак, я решил провести несколько экспериментов, чтобы посмотреть, смогу ли я улучшить производительность.

Вот что я сделал:

  • Я удалил кеширование узлов.
  • Я создал индексы по 20 столбцам в 5 таблицах (всего в моей БД 103 столбца в 5 таблицах).

Результат удивил! После индексации некоторые из моих более сложных запросов, включающих несколько JOIN, выполнялись всего за 3–5 мс.

Ранее с кэшированием узлов:

  • Раньше первый запрос занимал около 300-400 мс.
  • Последующие запросы займут 2–5 мс (из-за кэширования).

После, только с индексами SQLite:
каждый запрос занимает всего 7-10 мс без какого-либо кэширования.

Теперь запросы выполняются стабильно быстро, а также это снизило нагрузку на сервер! Первоначально я запускал свое приложение на дроплете DigitalOcean с 4 ГБ ОЗУ и 4 виртуальными процессорами. Но после оптимизации SQL-запросов я могу с легкостью справиться с той же рабочей нагрузкой, используя всего 2 ГБ ОЗУ и 2 виртуальных ЦП.

Я знаю, что это может показаться простым, но правильная индексация SQL настолько сильно изменила производительность запросов, что мне больше не нужно полагаться на кеширование. ?

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/w3vish/sql-query-caching-vs-indexing-in-expressjs-40n6?1. Если обнаружено какое-либо нарушение прав, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3