2

データベースからデータを取得したいのですが、複数のクエリを作成する方法と 1つのマルチクエリを作成する方法のどちらが高速ですか?

4

2 に答える 2

4

データベースへの各「往復」には、いくらかのオーバーヘッドがあります。したがって、往復が少ないほど、オーバーヘッドは少なくなります。また、リクエストが少ないということは、クライアントからサーバーへのパケットが少ないことを意味することも考慮してください。統合されたクエリの結果が必要なものだけを提供する場合は、単一のクエリが最適です。単一のクエリが余分なデータまたは冗長なデータを返す場合 (おそらく非正規化が原因で)、余分なデータが転送されるため、1 回のラウンドトリップで節約できるオーバーヘッドが失われる可能性があります。

もう 1 つの考慮事項は、待ち時間です。1 つの出力の一部が次の入力に必要なため、クエリを順番に完了する必要がある場合、1 つのクエリに統合すると、個々の小さなクエリすべての間のすべてのネットワーク レイテンシが削減されるため、最終結果を得ることができます。より速く配達されます。ただし、小規模なクエリが互いに独立している場合は、それらを並行して起動すると、効率は低下しますが、すべての結果をより速く配信できます。

結論: 答えは、状況の詳細によって異なります。答えを得る最善の方法は、おそらく両方の方法を実装し、テストして、各実装のリソース使用量を比較することです。

于 2015-05-02T15:31:33.290 に答える
1

一般に、それはマルチクエリになります。しかし、それはハードウェア、データ構造などの多くのものに依存します.

ただし、接続にはそれぞれ少し時間がかかります。

于 2015-05-02T15:14:12.857 に答える