Google bigquery bigquery ORDER BY子句使用哪种排序算法?
是否使用冒泡排序/合并排序。。算法类型?关于这些类型的声明的后台执行,是否有任何文档/信息可用?不知道为什么你会被否决,因为我认为没有任何地方描述过这一点。在单个分区中,BigQuery使用了一些技巧,具体取决于ORDERBY子句中列的类型和数量。例如,如果您有一个名为Google bigquery bigquery ORDER BY子句使用哪种排序算法?,google-bigquery,Google Bigquery,是否使用冒泡排序/合并排序。。算法类型?关于这些类型的声明的后台执行,是否有任何文档/信息可用?不知道为什么你会被否决,因为我认为没有任何地方描述过这一点。在单个分区中,BigQuery使用了一些技巧,具体取决于ORDERBY子句中列的类型和数量。例如,如果您有一个名为x的INT64列,并运行此表单的查询: SELECT x FROM dataset.table ORDER BY x BigQuery将把所有x值加载到一个向量中,然后排序并返回它们。但是,如果在select list或ORDE
x
的INT64
列,并运行此表单的查询:
SELECT x
FROM dataset.table
ORDER BY x
BigQuery将把所有
x
值加载到一个向量中,然后排序并返回它们。但是,如果在select list或ORDER BY子句中有多个列,就不那么简单了。谢谢Elliott,关于这些列还有其他信息吗?关于什么,特别是针对不同类型SQL的执行算法statements@ElliottBrossard:我怀疑它会被否决,因为它非常广泛,与编程/SQL没有特别关系。排序算法完全从用户那里抽象出来,无法通过编程进行控制。我同意知道BigQuery是如何排序的很有趣,但也许这是一个更适合stackexchange或Quora的问题?只有我的2美分。非常酷的信息!我个人认为这个问题是值得欢迎的,了解排序算法的复杂性对于决定我们愿意使用多少数据非常重要。我仍然想知道,在给定列上聚集一个表是否也会影响排序。据我所知,它似乎有点像一个索引,也许有一些优化可以进一步降低这种情况下最坏情况场景复杂性的预期。