Azure弹性数据库中ReferenceTableInfo与ShardedTableInfo之间的区别是什么



我下载了示例代码->"ElasticScaleStarterKit"(在visual studio->文件->新建->项目->在线->用于Azure SQL的弹性数据库工具-入门)。

模式定义如下:

schemaInfo.Add(new ReferenceTableInfo("Regions"));
schemaInfo.Add(new ReferenceTableInfo("Products"));
schemaInfo.Add(new ShardedTableInfo("Customers", "CustomerId"));
schemaInfo.Add(new ShardedTableInfo("Orders", "CustomerId"));

ReferenceTableInfo和ShardedTableInfo之间有什么区别?

我知道,简单的区别是适用于所有数据库(如状态表等)的"干"信息和适用于特定客户的个人信息。

但是,如果所有表都设置为引用,会发生什么这种设置的缺点是什么:

schemaInfo.Add(new ReferenceTableInfo("Regions"));
schemaInfo.Add(new ReferenceTableInfo("Products"));
schemaInfo.Add(new ReferenceTableInfo("Customers"));
schemaInfo.Add(new ReferenceTableInfo("Orders"));

希望得到任何帮助:)

谢谢!

引用表是数据被复制的表,这意味着如果引用表有5行,那么这5行将存在于引用表的所有实例中。

然而,Sharded表是对数据进行分区的表。例如,如果Sharded表中有5行数据,那么其中2行将存在于一个Shard(或数据库)中,3行将存在另一个。所以没有两个数据库会有相同的行集。

拆分/合并工具也会使用此信息。对于复制的表,所有行都从源复制到目标,而对于分片表,行则从源移动到目标。

希望这能有所帮助!

相关内容

  • 没有找到相关文章

最新更新