Azure SQL Federation(联合)

说Federation(联合)之前,先说下,表的垂直分割 和 水平分割
-------------------------------------------------------------------水平分割-----------------------------------------------------
具个例子吧:比如,每个人都有身份证号上面有你的信息,那么肯定有个一张表存放这些信息,中国13亿人的身份证信息,不可能全部放在一张表中,

如果放在一张表中,查询会比较慢,现在怎么办了????
Azure SQL  Federation(联合)

我们可以把表分成9张,分别为 table1 ,table2,table3,table4,table5......
如果增加一条数据,可以根据ID不同,而插入不同的表,
例如: ID%10:表示ID取10的余数= 0~9,插入的时候 insert into 表名+ID%10的值()
如果ID%10=2,那么插入: insert into  table2()

查询也是样的:

如果传过来一个ID,获取ID后 ,ID%10=2
select* from tabl2 where id=id

-------------------------------------------------------------------垂直分割-----------------------------------------------------
   
 有些表的数据并是很多,单字段却很长,表占用空间很大,执行检索时需要大量的I/0,可能会影响性能。
这个时候就需要把大的字段放在另一张表中,并且和原表是一对一的关系。
这个就不画图了,相信聪明的你一定懂的。

 

现在再介绍一下数据库:可扩展性模型,有两种扩展模型:向上扩展  和 向外扩展
向上扩展:就是一个数据库位于一台服务器,这种情况下很难处理较大的负载,如果你需要向上扩展你就要加  CPU  RAM,当服务容量不够时你就需要引入跟好的机器,
但是机器种有一个灵界点。应此向上扩展很难处理较大的负载。

向外扩展:选择跟多数据库,跨多个独立节点分散那些数据库,这种模式跟经济,向外扩展典型就是水平分区了,即多个独立节点分割数据库,
这就是Azure SQL Federation 发挥优势的地方。
举例:

 比如你在网上卖月饼,中秋来了,这意味这你需要买跟好的硬件,才能应对,但是中秋过来怎么办,就出现,过度供应了,

比如: Azure SQL Federation 就不会出现这些情况,应为他是弹性的,按需扩展,收缩,根据使用付费,这是联合的基本原理。 

------------------------------------------怎么创建联合了----------------------------------------------------------------------------

这些是联合理论:

Federation
我们熟悉的 Table View Proc 这些对象都包含在一个数据库界限之内。
联合与任何其他对象一样使用Create Federation 语句 Federation_Name
但区别在于 一个联合是一个特殊对象,该对象扩展到数据库界限以外,因为随着扩展,他
需要知道我们
要扩展到不同联合成员。

Federation Root
联合跟是一个*存储库 用于存储与向外扩展数据分布有关的信息
他只是一个数据库,
联合跟包括联合对象,我们可以创建联合对象


Federation Member(联合成员)
联合成员是存放数据部分的物理容器,联合成员是实际物理数据库,他们由
Sql Server管理,但他们不再Sql Server Management Studio 中数据库列表中

 


Federation Key
联合键用于定义数据分发
是客户ID,产品ID,订单ID
联合键定义如何分发和分割数据
现在联合键是 int bigint guid varbinary


Atomic Unit
原子单元代表一个联合的单一实例
例如:客户会有相关的记录:比如
客服地址,客服电话,客服订单
因此一个联合表具有同一联合键值对所有行代表一个原子单元
例如:如果我有一个客户ID是10 所有相关记录:比如
客户电话,客户地址,客户订单,都在一个原子单元中,因为
他们与客户表中的值为10的客户的ID相关,所用这些相关的记录
构成一个原子单元

 

Architecture Cont.(联合表和引用表)
联合表是我们要在其上进行分区的表
例如:客户电话,客户地址.........
我们要调用这些联合表

引用表是不进行分区的表
我们不会分割其中的数据 但引用表是静态的表
其中的数据不会有太大改变:比如状态 或 邮编
他们是非联合的表
担当我们分割数据并创建跟多联合成员时,
这些表复制到每个联合成员中,
他们不是联合的,因此我们不分割其数据,
但整个表复制到每个联合成员中

》1.创建数据库服务器

Azure SQL  Federation(联合)

》2.用本数据库连接:连接字符串在这里
Azure SQL  Federation(联合)

》3.创建一个数据库
Azure SQL  Federation(联合)

注意;在master下面创建

3》在“可用数据库”中,选择你在上一过程中创建的联合根
Azure SQL  Federation(联合)

 

cid :表示联合分发键
由于时间关系:今天先说到这里吗,下篇将更加详细的说一下。

希望你从中获得收益!

 

Azure SQL Federation(联合),布布扣,bubuko.com

Azure SQL Federation(联合)

上一篇:测试开发之系统篇-常用系统命令


下一篇:react 父组件值改变,子组件无变化时,使用深度拷贝可解决