「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > (SQL クエリ) Express.js でのキャッシュとインデックス作成

(SQL クエリ) Express.js でのキャッシュとインデックス作成

2024 年 11 月 8 日に公開
ブラウズ:717

(SQL Query) Caching vs Indexing in Express.js

開発者の皆さん、これがこのプラットフォームでの最初の投稿です。 ?

Express.js と SQL に関して私が経験した驚くべき経験を共有したいと思いました。私は初心者の開発者で、プロジェクトの API に取り組んでいる間、1 日あたり 200,000 件を超える API リクエストを処理していました。最初に、Express.js API を使用して SQLite データベース (約 400 MB) をセットアップし、Node.js キャッシュを使用して処理を高速化しました。

クエリには複数の JOIN と検索が含まれていたため、最初は応答時間は約 200 ~ 300 ミリ秒でした。そこで、パフォーマンスを向上できるかどうかを確認するためにいくつかの実験を実行することにしました。

私がやったことは次のとおりです:

  • ノードのキャッシュを削除しました。
  • 5 つのテーブルの 20 列にインデックスを作成しました (DB には 5 つのテーブルに合計 103 列があります)。

その結果は驚きでした!インデックス作成後、複数の JOIN を含むより複雑なクエリの一部は、わずか 3 ~ 5 ミリ秒で実行されました。

以前はノード キャッシュあり:

  • 最初のリクエストには約 300 ~ 400 ミリ秒かかっていました。
  • 後続のリクエストには 2 ~ 5 ミリ秒かかります (キャッシュのため)。

SQLite インデックスのみを使用した後:
すべてのリクエストは、キャッシュなしで 7 ~ 10 ミリ秒しかかかりません。

クエリが一貫して高速になり、サーバーの負荷も軽減されました。当初、私は 4 GB の RAM と 4 つの vCPU を備えた DigitalOcean ドロップレット上でアプリを実行していました。しかし、SQL クエリを最適化した後は、わずか 2 GB の RAM と 2 つの vCPU で同じワークロードを快適に処理できるようになりました。

これは簡単に聞こえるかもしれませんが、適切な SQL インデックス作成によりクエリのパフォーマンスに大きな違いが生じ、もはやキャッシュに依存する必要さえなくなりました。 ?

リリースステートメント この記事は次の場所に転載されています: https://dev.to/w3vish/sql-query-caching-vs-indexing-in-expressjs-40n6?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3