MyCat全局表和ER--笔记(三)

全局表数据库

全局表的做用
  在分片的状况下,当业务表由于规模而进行分片之后,业务表与这些附属的字典表之间的关联,就成了比较棘手的问题,考虑到字典表具备如下几个特性:   服务器

  1.   变更不频繁
  2.   数据量整体变化不大
  3.   数据规模不大,不多有超过数十万条记录。   

        鉴于此,MyCAT 定义了一种特殊的表,称之为“全局表”,全局表具备如下特性: 性能

  1.    全局表的插入、更新操做会实时在全部节点上执行,保持各个分片的数据一致性
  2.    全局表的查询操做,只从一个节点获取
  3.     全局表能够跟任何一个表进行 JOIN 操做

全局表配置(配置全部可能用到节点)spa

<table name="TBL_LOG" primaryKey="ID" type="global" dataNode="dn1,dn2" />

全局表说明
 一、准对Select操做,mycat会随机如今一个节点输出结果内容;
    二、准对Insert-Update-Delete操做,Mycat会操做全部节点code

E-R分片表blog

  也称为父子表,主外键关联表;处理存在2种请求对应关系。it

一、父表的分片字段是子表的外键字段:table

  这种状况下,父表经过分片字段查询能很快定位到数据库的位置提升查询性能;子表经过父表ID也能很快定位到分片服务器数据库地址;class

<table name="ORDER1" primaryKey="ID" dataNode="dn1,dn2" rule="mod-long"> 
            <childTable name="ORDER_DETAIL" primaryKey="ID" joinKey="ORDER_ID" parentKey="ID" /> 
</table>

二、父表的分片字段不是子表的外键字段:配置

      这种状况下,父表经过分片字段查询能很快定位到数据库的位置提升查询性能;子表经过父表ID查询时,Mycat将遍历全部节点数据,实现数据查询;

<table name="ORDER2" primaryKey="ID" dataNode="dn1,dn2" rule="province-str"> 
               <childTable name="ORDER_DETAIL2" primaryKey="ID" joinKey="ORDER_ID" parentKey="ID" /> 
</table>
相关文章
相关标签/搜索