3

联接如何在 Google 的 Cloud Spanner 数据库中工作?

连接查询执行得快吗?SQL(MySql、Oracle、MSSQL)与 NewSQL(Cloud Spanner/TiDB/CockroachDB)之间有什么比较吗?

4

3 回答 3

3

Cloud Spanner支持内连接、交叉连接、全连接、左连接和右连接。联接速度很快,但由于 Cloud Spanner 将数据分布在多个拆分中,因此您可以随时将查询限制为更少的拆分,查询速度就会越快。Cloud Spanner 支持数据交错以定义父子关系,从而使您能够有效地预先加入数据以加快查询速度。

于 2017-03-24T17:58:50.107 回答
3

TiDB 支持 join。TiDB 在 tidb-server 中存储数据,在 tidb-server 中处理 sql。tidb-server 将从 tikv-server 获取数据并处理 sql 逻辑。

TiDB 默认使用并行 HashJoin 算子作为物理连接算子。您还可以通过在 sql 语句中添加提示来选择 SortMergeJoin 和 IndexLookupJoin 运算符。在大多数情况下,HashJoin 是一个不错的选择。但在某些场景下,SortMergeJoin 或 IndexLookupJoin 会更好。最后两个运算符对内存更友好。在下一个版本中,TiDB 将根据成本选择使用哪个物理连接算子。

下图展示了 TiDB 中并行 HashJoin 算子的工作原理。 并行HashJoin

于 2017-05-22T12:35:31.337 回答
1

它不太可能与 Spanner 中的完全相同,但如果您想了解更多关于连接如何工作并在 NewSQL 数据库中进行优化的详细信息,我建议您查看 CockroachDB 关于连接的博客文章:

https://www.cockroachlabs.com/blog/cockroachdbs-first-join/ https://www.cockroachlabs.com/blog/better-sql-joins-in-cockroachdb/

于 2017-03-24T18:15:38.113 回答