背景: Amazon クラウドで Express と Mongoose を使用して構築した Node.js API の速度を最適化しようとしています。実行にかなりの時間がかかる API 呼び出しが 1 つあります (私の /stats API 呼び出しは、多くのソースからデータをコンパイルするため、何百もの mongo クエリを作成するため、実行に約 20 秒かかります)。この API 呼び出しの実行中に、Mongo レプリカ セットにもヒットする他の API 呼び出しの戻りが遅いことに気付きました。最初に考えたのは、統計クエリが遅いためにブロックされているということでしたが、私の統計パネルによると、実行に 100 ミリ秒を超えるクエリはなく、Mongo DB の統計もすべてかなり健全な範囲内にあります (1 回あたり 20 以上のクエリ)。 2 番目、<1% の btree ミス、<5% のロック)。
質問: 現在、私の Node.js アプリは起動時に Mongo セットへの単一の接続を確立し、すべてのクエリがその接続を使用します。複数の接続を確立した方がよいでしょうか? たとえば、代わりに、インバウンド API リクエストごとに新しい Mongo 接続を確立する必要がありますか? または、レプリカ セットへの静的な数の接続と、クエリの実行時にそれらの接続間の負荷分散を行う必要がありますか?
それとも、私は完全に基地外ですか?