2

我想知道就从数据库计算行数而言,什么是更快的方法?DB(服务器)中的计数查询是否会比程序(客户端)中的某种计数更快。我认为要考虑的事情是

  • 数据库大小

  • 编程语言使用

  • 客户需要计算的行数吗?

有什么建议么?

4

2 回答 2

3

仅靠计数本身无法比在 C++、C# 或 Java 等编译语言中执行它更快。通过一行行数算什么

不幸的是,将行从服务器复制到客户端比计算它们要昂贵得多。所以你最好让服务器计算它们。

我真的想不出一个应该依靠客户端的场景(如果唯一需要的是计数,而不是行本身)。

如果客户端需要这些行:

  1. 如果需要所有行:依靠客户端
  2. 如果只需要一个页面:依靠服务器!可能有成百上千的页面,您不想下载所有页面。RDBMS 通常可以优化计数,因为不需要列数据来计数。
于 2012-08-20T15:30:05.450 回答
1

这取决于要求是什么,我宁愿在数据库级别进行,并且在客户端计算行需要将行传输到客户端。需要研究的一些问题是

    是否需要将行传递给客户端的开销?
    应用程序访问数据库的频率
    要发送的行有多大(行的大小)

考虑到所有这些,我一般会在数据库级别进行计数,但正如我在开始时所说的那样。这取决于我们想要实现它的场景。

于 2012-12-13T21:07:10.400 回答