zoukankan      html  css  js  c++  java
  • MySQL 部署分布式架构 MyCAT (五)

    分片(水平拆分)

    4.全局表

    业务使用场景:
    如果你的业务中有些数据类似于数据字典,比如配置文件的配置,
    常用业务的配置或者数据量不大很少变动的表,这些表往往不是特别大,
    而且大部分的业务场景都会用到,那么这种表适合于Mycat全局表,无须对数据进行切分,
    要在所有的分片上保存一份数据即可,Mycat 在Join操作中,业务表与全局表进行Join聚合会优先选择相同分片内的全局表join,
    避免跨库Join,在进行数据插入操作时,mycat将把数据分发到全局表对应的所有分片执行,在进行数据读取时候将会随机获取一个节点读取数据。
    
    cd /data/mycat/conf
    cp schema.xml schema.xml.intfile
    
    vi schema.xml
    <?xml version="1.0"?>
    <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
    <mycat:schema xmlns:mycat="http://io.mycat/">
    <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="sh1">
            <table name="t_area" dataNode="sh1,sh2" primaryKey="id"  type="global" />
    </schema>
        <dataNode name="sh1" dataHost="oldguo1" database= "taobao" />
        <dataNode name="sh2" dataHost="oldguo2" database= "taobao" />
        <dataHost name="oldguo1" maxCon="1000" minCon="10" balance="1"  writeType="0" dbType="mysql"  dbDriver="native" switchType="1">
            <heartbeat>select user()</heartbeat>
        <writeHost host="db1" url="192.168.31.205:3307" user="root" password="123">
                <readHost host="db2" url="192.168.31.205:3309" user="root" password="123" />
        </writeHost>
        <writeHost host="db3" url="192.168.31.206:3307" user="root" password="123">
                <readHost host="db4" url="192.168.31.206:3309" user="root" password="123" />
        </writeHost>
        </dataHost>
        <dataHost name="oldguo2" maxCon="1000" minCon="10" balance="1"  writeType="0" dbType="mysql"  dbDriver="native" switchType="1">
            <heartbeat>select user()</heartbeat>
        <writeHost host="db1" url="192.168.31.205:3308" user="root" password="123">
                <readHost host="db2" url="192.168.31.205:3310" user="root" password="123" />
        </writeHost>
        <writeHost host="db3" url="192.168.31.206:3308" user="root" password="123">
                <readHost host="db4" url="192.168.31.206:3310" user="root" password="123" />
        </writeHost>
        </dataHost>
    </mycat:schema>
    

    准备数据

    mysql -S /data/3307/mysql.sock -e "use taobao;create table t_area (id int not null primary key auto_increment,name varchar(20) not null);"
    mysql -S /data/3308/mysql.sock -e "use taobao;create table t_area (id int not null primary key auto_increment,name varchar(20) not null);"
    
    mycat restart
    mysql -uroot -p123456 -h127.0.0.1 -P8066
    
    use TESTDB
    insert into t_area(id,name) values(1,'a');
    insert into t_area(id,name) values(2,'b');
    insert into t_area(id,name) values(3,'c');
    insert into t_area(id,name) values(4,'d');
    

    检查

    mysql -S /data/3307/mysql.sock -e "use taobao;select * from t_area;"
    +----+------+
    | id | name |
    +----+------+
    |  1 | a    |
    |  2 | b    |
    |  3 | c    |
    |  4 | d    |
    +----+------+
    
    mysql -S /data/3308/mysql.sock -e "use taobao;select * from t_area;"
    +----+------+
    | id | name |
    +----+------+
    |  1 | a    |
    |  2 | b    |
    |  3 | c    |
    |  4 | d    |
    +----+------+
    
  • 相关阅读:
    ajax的一些知识
    前端性能优化汇总
    jquery实现一些小动画二
    python简单日志处理
    逆波兰式---C实现
    java常见异常
    Hive与HBase集成及常见问题解决
    SQL for HBase
    Demystifying the Skip Scan in Phoenix
    Difference between DDL, DML and DCL commands
  • 原文地址:https://www.cnblogs.com/klvchen/p/12041031.html
Copyright © 2011-2022 走看看