2

データベースから行を数えることに関する限り、より速い方法は何でしょうか? DB(サーバー)でのカウントクエリは、プログラム(クライアント)でのある種のカウントよりも高速になります。考慮すべき事項は

  • データベースのサイズ

  • プログラミング言語の使用

  • カウントされる行はクライアントに必要ですか?

助言がありますか?

4

2 に答える 2

3

カウント自体は、C ++、C#、Javaなどのコンパイル言語で実行するよりも速くすることはできません。行のストリームを数えることは何もありません。

残念ながら、サーバーからクライアントに行をコピーすることは、それらを数えるよりもはるかにコストがかかります。したがって、サーバーにそれらをカウントさせる方が常に良いでしょう。

私は文字通り、クライアントを信頼する必要があるシナリオを考えることはできません(必要なのが行自体ではなく、カウントだけである場合)。

クライアントで行が必要な場合:

  1. すべての行が必要な場合:クライアントを頼りに
  2. 必要なページが1つだけの場合:サーバーを頼りに!数百または数千のページがあり、それらすべてをダウンロードしたくない場合があります。カウントに列データが必要ないため、RDBMSはカウントを最適化できることがよくあります。
于 2012-08-20T15:30:05.450 に答える
1

要件によって異なりますが、データベースレベルで実行し、クライアントで行をカウントするには、行をクライアントに転送する必要があります。注目すべきいくつかの質問は

    クライアントに行を渡すオーバーヘッドは必要ですか?
    アプリケーションによるデータベースアクセスの頻度
    送信する行の大きさ(行のサイズ)

これらすべてを考慮して、私は一般的にDBレベルで数えることにしますが、最初に言ったように。実装したいシナリオによって異なります。

于 2012-12-13T21:07:10.400 に答える