zoukankan      html  css  js  c++  java
  • MyCat全局表和ER--笔记(三)

    全局表

    全局表的作用
      在分片的情况下,当业务表因为规模而进行分片以后,业务表与这些附属的字典表之间的关联,就成了比较棘手的问题,考虑到字典表具有以下几个特性:   

    1.   变动不频繁
    2.   数据量总体变化不大
    3.   数据规模不大,很少有超过数十万条记录。   

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

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

    全局表配置(配置所有可能用到节点)

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

    全局表说明
     1、准对Select操作,mycat会随机现在一个节点输出结果内容;
        2、准对Insert-Update-Delete操作,Mycat会操作所有节点

    E-R分片表

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

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

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

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

    2、父表的分片字段不是子表的外键字段:

          这种情况下,父表通过分片字段查询能很快定位到数据库的位置提高查询性能;子表通过父表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>
  • 相关阅读:
    drf中 连表深度查询和ListSerializer类包括drf中Response二次封装
    drf中表之间断关联操作
    drf中的序列化家族
    rest_framework框架的封装特点和APIView请求生命周期
    vue项目和django项目交互补充,drf介绍,restful规范
    Vue成绩单
    面向对象编程day2
    面向对象编程day3
    面向对象编程day1
    day13
  • 原文地址:https://www.cnblogs.com/xibei666/p/10410951.html
Copyright © 2011-2022 走看看