首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我是使用SELECT (*)还是使用SELECT来获取行并在以后计数行

我是使用SELECT (*)还是使用SELECT来获取行并在以后计数行
EN

Stack Overflow用户
提问于 2016-09-29 08:34:58
回答 4查看 703关注 0票数 0

我正在编写一个NodeJs应用程序,它应该是非常轻的mysql (Engine- InnoDB)。

我正在尝试计算mysql db中表的记录数。

因此,我想知道是使用COUNT(*)函数还是使用SELECT查询获取所有行,然后使用JavaScript对行进行计数。

哪种方式更适合,

  1. DB运营成本
  2. 总体绩效
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-09-29 08:40:36

当然要使用count()函数--除非您也需要记录中的数据用于其他目的。

如果您查询所有行,那么在MySQL端,服务器必须准备一个结果集(内存消耗,将数据提取到结果集中的时间),然后通过与应用程序的连接(更多的数据需要更多的时间),您的应用程序必须接收数据(同样,内存消耗和创建结果集的时间),最后,您的应用程序必须计数结果集中的记录数。

如果使用count(),MySQL会对记录进行计数,并只返回一个数字。

票数 1
EN

Stack Overflow用户

发布于 2016-09-29 08:38:38

显然,count()比分别获取和计数要好。作为count(),从索引键中获取总计数(如果有主键)。

另外,获取数据需要花费太多的时间(磁盘I/O和网络操作)。

谢谢

票数 1
EN

Stack Overflow用户

发布于 2016-09-29 08:41:11

当从数据库获取信息时,通常最好的方法是获取所需的东西,而不是其他任何东西。这包括选择特定列而不是select *,以及在DBMS而不是客户端代码中进行聚合。在这种情况下,由于显然只需要计数,所以使用count()

这是一个很好的选择,它将超过任何其他尝试解决方案,因为:

  • 您将只通过网络发送绝对必要的内容(这对本地数据库可能不太重要,但一旦您将数据转移到其他地方,它就会产生真正的影响);
  • 数据库管理系统几乎肯定会针对该用例进行优化。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39765324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档