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>
  • 相关阅读:
    文件权限---I
    python查看变量在内存中的地址
    Python3 基本数据类型
    print语法
    任务管理器启动项显示“没有可显示的启动项”如何解决?
    nginx 虚拟主机配置
    nginx 高级应用
    nginx 日志文件详解
    nginx 编译安装与配置使用
    python获取header脚本
  • 原文地址:https://www.cnblogs.com/xibei666/p/10410951.html
Copyright © 2011-2022 走看看