是否有可能在往返时针对Google Spanner执行多个查询?
例如,我想在一次往返中运行以下两个查询:(来自性能问题)
select * from Test1;
select * from Test2;
答案 0 :(得分:2)
不,不是在一个请求中。当前的批处理支持仅适用于写入。而是在不同的请求上并行发送2个请求。
答案 1 :(得分:2)
您可以采用其他一些方法来构建单个查询,使其包含这两个查询的结果:
SELECT * FROM Test1 UNION ALL SELECT * FROM Test2
仅当两个表中的列数相同且类型相同(或具有共同的超类型)时才有效
SELECT ARRAY(SELECT AS STRUCT * FROM T1), ARRAY(SELECT AS STRUCT * FROM T2)
即使两个表具有不同的列数或不同的列类型,这仍然有效。这里的限制是,这将只返回一行,其中包含将在内存中完全实现的所有数据。