gpt4 book ai didi

database - HanaDB - : SELECT COUNT( * ) FROM dbtab 的复杂度

转载 作者:行者123 更新时间:2023-12-04 15:02:06 24 4
gpt4 key购买 nike

本题同MySQL - Complexity of: SELECT COUNT(*) FROM MyTable; .

区别在于,我想知道 HDB 的答案,而不是 MySQL

我用 Google 搜索了它,并在 SAP 知识库中查找它,但没有找到答案。

澄清一下:问题是关于在没有任何附加条件的情况下选择计数:

SELECT COUNT( * ) FROM dbtab.

上述查询的复杂度是多少。 HDB 是否在每个表的顶部存储一个计数器?

最佳答案

HANA 支持多种表类型,例如此处会想到 ROW、COLUMN、VIRTUAL、EXTENDED 和 MULTISTORE 表。

对于其中一些,当前的原始记录数作为内部存储结构的一部分保存,不需要在查询时计算。对于 ROW 和 COLUMN 表尤其如此。

VIRTUAL 表处于极端的另一端,当涉及到 SELECT count(*) 时,它的行为更像复杂 View 。根据虚拟表“背后”的数据库,其性能可能差异很大!

此外,假设 ROW 和 COLUMN 存储表将几乎不费力 返回信息,请小心。 HANA 是一个无共享的分布式数据库(在横向扩展设置中),这意味着这种信息只有表所在的节点知道。找出行数,例如在 Y 个节点上具有 X 个分区的分区表可能需要相当长的时间!

最后,此原始记录计数 仅适用于当前内存中的表。在当前卸载的表上运行 SELECT count(*) 将触发加载回答该查询所需的列(基本上是所有主键列 + 一些内部表管理结构)。

在理想情况下(列表,加载到内存和单个节点上的所有分区)这个查询应该立即返回;但也需要考虑其他提到的场景。

希望这能回答这个相当广泛的问题。

关于database - HanaDB - : SELECT COUNT( * ) FROM dbtab 的复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66795693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com