我很好奇它使用哪种类型的优化器,以便可以优化数据库和查询以使其适合。
我知道基于成本的目的是确定执行SQL语句的最有效方法,但是如果没有关于所访问数据的最新的统计信息,就无法做到这一点。使用基于成本的方法,优化器因素是有关正在访问的特定模式对象(表,集群或索引)的内容的统计信息。
基于规则的优化器是一种没有统计信息的方法,但是这种方法比基于成本的方法更不明智。使用基于规则的方法,优化器根据一组规则选择执行计划,该规则确定哪些类型的操作通常比其他类型的操作执行得更快。
我相信它是基于成本的,但是我不确定。谁能为我提供更多有关为什么可能是另一个的信息? 谢谢!
答案 0 :(得分:0)
BigQuery中没有自动规则来节省成本。最好的方法是遵循BigQuery best practices: Controlling costs
请在下面查看一些我认为非常有用的规则:
规则1
避免SELECT *
最佳做法:仅查询所需的列。
规则2
使用预览选项采样数据
最佳做法:不要运行查询来浏览或预览表数据。
规则3
在运行查询之前为查询定价
最佳做法:在运行查询之前,先预览它们以估算费用。
规则4
通过限制计费字节数来限制查询费用
最佳做法:使用“最大字节收费”设置来限制查询费用。
规则5
按日期划分的分区数据
最佳做法:按日期对表进行分区。