Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql ZeosLib数据集是否需要执行FetchAll方法来返回实际的总行数?_Mysql_Delphi_Zeos - Fatal编程技术网

Mysql ZeosLib数据集是否需要执行FetchAll方法来返回实际的总行数?

Mysql ZeosLib数据集是否需要执行FetchAll方法来返回实际的总行数?,mysql,delphi,zeos,Mysql,Delphi,Zeos,在Firebird/Interbase数据库中,我们有TIBQuery、TIBTable和TIBDataSet,它们有FetchAll方法来计算数据集有多少行。如果我们不调用该方法,这些数据集只注册为用户已被TDBGrid或TDBNavigator看到的行数的“总计”。可以通过调用这些数据集的“RecordCount”方法来检索此“total” 另一种(更有效的)获取实际总行数的方法是获取一个单独的数据集,并从表_NAME中执行一些选择COUNT(*),并应用我们喜欢的任何过滤器。到目前为止还可

在Firebird/Interbase数据库中,我们有
TIBQuery
TIBTable
TIBDataSet
,它们有
FetchAll
方法来计算数据集有多少行。如果我们不调用该方法,这些数据集只注册为用户已被
TDBGrid
TDBNavigator
看到的行数的“总计”。可以通过调用这些数据集的“RecordCount”方法来检索此“total”

另一种(更有效的)获取实际总行数的方法是获取一个单独的数据集,并从表_NAME中执行一些
选择COUNT(*),并应用我们喜欢的任何过滤器。到目前为止还可以

但是现在我通过ZeosLib使用MySQL,我想知道我是否需要在内存上进行第二次查询

我们知道ZeosLib进行查询,它可能会在内部返回该查询的统计信息,其中包括返回的行数

ZeosLib是将该信息放入
记录计数中,还是与Interbase组件完全相同

  • Zeos返回已获取的记录数。它不考虑任何应用的过滤器,并且在返回
    RecordCount
    之前不执行
    FetchAll
  • SELECT COUNT(*)…
    并不是“更高效”,因为它会创建额外的服务器工作负载,有时可能等于执行原始查询的工作负载
  • 通常,数据访问库可能提供3种记录计数计算模式:获取的行数、可见行数(与第一种模式类似,但在应用过滤器之后)和
    SELECT count(*)
    。FetchAll或not FetchAll最好显式控制。在()中就是这样做的