为什么 Java 的 cloud spanner 库在调用读取查询时执行“ExecuteStreamingSql”而不是“ExecuteSql”?
Why the cloud spanner library for Java perform `ExecuteStreamingSql` instead of `ExecuteSql` when it calls read query?
我对此没有任何问题,但我只是想通过了解库使用 ExecuteStreamingSql
的原因来了解 ExecuteStreamingSql
和 ExecuteSql
的区别。
最重要的原因是ExecuteSql
有一个hard upper limit对于10MiB的返回结果大小。因此必须始终使用 ExecuteStreamingSql
.
返回更大的查询结果
此外,ExecuteStreamingSql
returns 结果作为结果流,并允许在流/网络连接中断时使用 ResumeToken
从流中的特定点重试中途。
我对此没有任何问题,但我只是想通过了解库使用 ExecuteStreamingSql
的原因来了解 ExecuteStreamingSql
和 ExecuteSql
的区别。
最重要的原因是ExecuteSql
有一个hard upper limit对于10MiB的返回结果大小。因此必须始终使用 ExecuteStreamingSql
.
此外,ExecuteStreamingSql
returns 结果作为结果流,并允许在流/网络连接中断时使用 ResumeToken
从流中的特定点重试中途。