HanaDB - 复杂度:SELECT COUNT( * ) FROM dbtab
HanaDB - Complexity of: SELECT COUNT( * ) FROM dbtab
此题与MySQL - Complexity of: SELECT COUNT(*) FROM MyTable;相同。
区别在于 MySQL
我想知道 HDB
的答案。
我用 Google 搜索了它,并在 SAP 知识库中查找它,但没有找到答案。
澄清一下:问题是关于在没有任何附加条件的情况下选择计数:
SELECT COUNT( * ) FROM dbtab.
以上查询的复杂度是多少。 HDB
是否在每个 table 之上存储一个计数器?
HANA 支持多种 table 类型,例如ROW-、COLUMN-、VIRTUAL-、EXTENDED- 和 MULTISTORE-table 在这里浮现在脑海中。
对于其中一些,当前 raw 记录计数作为内部存储结构的一部分保存,不需要在查询时计算。
对于 ROW 和 COLUMN tables 尤其如此。
VIRTUAL table 处于极端的另一端,在 SELECT count(*)
方面表现得更像复杂视图。根据虚拟 table“背后”的数据库,其性能可能会变化很大!
此外,假设 ROW 和 COLUMN 存储 table 将 return 信息 几乎不费力 ,请小心。 HANA 是一个无共享的分布式数据库(在横向扩展设置中),这意味着这种信息只有 table 所在的节点知道。找出行数,例如在 Y 个节点上使用 X 个分区的分区 table 可能需要相当长的时间!
最后,此 原始记录数 仅适用于当前内存中的 table。 运行 当前卸载的 table 上的 SELECT count(*)
将触发加载回答该查询所需的列(基本上所有主键列 + 一些内部 table管理结构)。
在理想情况下(列 table,加载到内存和单个节点上的所有分区)此查询应该 return 瞬时;但其他提到的场景也需要考虑。
希望这能回答这个相当宽泛的问题。
此题与MySQL - Complexity of: SELECT COUNT(*) FROM MyTable;相同。
区别在于 MySQL
我想知道 HDB
的答案。
我用 Google 搜索了它,并在 SAP 知识库中查找它,但没有找到答案。
澄清一下:问题是关于在没有任何附加条件的情况下选择计数:
SELECT COUNT( * ) FROM dbtab.
以上查询的复杂度是多少。 HDB
是否在每个 table 之上存储一个计数器?
HANA 支持多种 table 类型,例如ROW-、COLUMN-、VIRTUAL-、EXTENDED- 和 MULTISTORE-table 在这里浮现在脑海中。
对于其中一些,当前 raw 记录计数作为内部存储结构的一部分保存,不需要在查询时计算。 对于 ROW 和 COLUMN tables 尤其如此。
VIRTUAL table 处于极端的另一端,在 SELECT count(*)
方面表现得更像复杂视图。根据虚拟 table“背后”的数据库,其性能可能会变化很大!
此外,假设 ROW 和 COLUMN 存储 table 将 return 信息 几乎不费力 ,请小心。 HANA 是一个无共享的分布式数据库(在横向扩展设置中),这意味着这种信息只有 table 所在的节点知道。找出行数,例如在 Y 个节点上使用 X 个分区的分区 table 可能需要相当长的时间!
最后,此 原始记录数 仅适用于当前内存中的 table。 运行 当前卸载的 table 上的 SELECT count(*)
将触发加载回答该查询所需的列(基本上所有主键列 + 一些内部 table管理结构)。
在理想情况下(列 table,加载到内存和单个节点上的所有分区)此查询应该 return 瞬时;但其他提到的场景也需要考虑。
希望这能回答这个相当宽泛的问题。