垂直切分实现

MyCat Nicholas 2018-11-28 790浏览
相关标签: MyCat

image.png

垂直切分即常说的分库,降低数据库耦合性。可以配置同一个实例下不同库,不同实例下不同库


schema.xml 配置

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/">
    <schema name="user" checkSQLschema="false" sqlMaxLimit="100" dataNode="user"/>
    <schema name="pay" checkSQLschema="false" sqlMaxLimit="100" dataNode="pay"/>
    <dataNode name="user" dataHost="host1" database="user" />
    <dataNode name="pay" dataHost="host2" database="pay" />
    <dataHost name="host1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native">
        <heartbeat>select 1</heartbeat>
        <writeHost host="db195" url="192.168.1.195:3306" user="root" password="123456">
            <readHost host="db18" url="192.168.1.18:3310" user="root" password="123456" />
        </writeHost>
    </dataHost>
    <dataHost name="host2" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native">
        <heartbeat>select 1</heartbeat>
        <writeHost host="db1806" url="192.168.1.18:3306" user="root" password="123456"/>
    </dataHost>
</mycat:schema>

server.xml配置

<user name="test_rw">
    <property name="password">test_rw</property>
    <property name="schemas">user,pay</property>
</user>
<user name="test_ro">
    <property name="password">test_ro</property>
    <property name="schemas">user_pay</property>
    <property name="readOnly">true</property>
</user>


同一个实例下垂直拆分

mysql -utest_rw -ptest_rw -P8066 -h192.168.1.220
    create table test01(id int,name varchar(20));
    create table test02(id int,name varchar(20));
    insert into user.test01 values(1,'heihei');
    insert into user.test01 values(10,'heihei');
    insert into pay.test02 values(1,'haha');
mysql> select * from user.test01 a join pay.test02 b on a.id = b.id;
    +------+--------+------+------+
    | id   | name   | id   | name |
    +------+--------+------+------+
    |    1 | heihei |    1 | huhu |
    +------+--------+------+------+


相关标签: MyCat
相关文章
1. 问题:分表的自增主键重复 现象: 对point_msg_his和broadcast_msg_his表进行了分表操作,该表有自增主键id,分表键使用的是其他字段。 在sqlmap中的insert语句: <!--table insert--> <insert id="insert" parameterClass="pointMsgHisDO" > insert into&nb继续阅读>>
2018-12-01 1731浏览 2个赞
分片规则: 1:官方建议是做成MyCAT Cluster  ,但是测试环境中开启两个MyCAT,会有时而连不上的问题; 2:MyCAT 在修改配置文件之后,可以通过 reload @@config ,在不重启的情况下更新配置:比如修改schema.xml  <table /> <dataNode /> <dataHost />,server.xml 。但是在管理端口看不到修改后的配置信息。 3:对节点、表的扩展操作可以执继续阅读>>
2018-11-28 916浏览 0个赞
数据库配置方式: 在数据库中建立一张表,存放sequence 名称(name) sequence 当前值(current-value),步长(increment int 类型每次读取多少个 sequence,假设为 K)等信息 创建全局序列表: CREATE TABLE MYCAT_SEQUENCE     (`name` VARCHAR(50) NOT NULL,    继续阅读>>
2018-11-28 1011浏览 0个赞
表 tdate 的数据水平分布在3 个数据库上 新建3个数据库: CREATE DATABASE db1; CREATE DATABASE db2; CREATE DATABASE db3; 每个数据库新建表: CREATE TABLE `tdate` (    `id` INT(11) NOT NULL,   &nbs继续阅读>>
2018-11-28 1383浏览 0个赞
水平拆分:通俗来讲就是将大表按行还拆分 在一般的应用系统中,用户表及其密切相关的关联表,可根据“用户表”(eg:t_user)中的“用户ID”(user_id)进行水平切分,并基于MyCAT的E-R关系分片策略将其密切相关的表(eg:t_user_class_rel)也分到对应的库中。 多(2)实例实现水平拆分:192.168.1.195:3306、192.168.1.18:3306 在每个实例上新建库、表: CREATE DATABAS继续阅读>>
2018-11-28 921浏览 1个赞
垂直切分即常说的分库,降低数据库耦合性。可以配置同一个实例下不同库,不同实例下不同库 schema.xml 配置 <?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://org.opencloudb/"> 继续阅读>>
2018-11-28 789浏览 0个赞
1、安装 JAVA 环境,必须是 JDK7 或更高版本 yum search JDK yum install java-1.7.0 java -version     java version "1.7.0_95"     OpenJDK Runtime Environment (rhel-继续阅读>>
2018-11-28 1143浏览 2个赞
版权声明
本站的文章和资源来自互联网或者站长的原创。如果有侵犯版权的资源请尽快联系站长,我们会在24h内删除有争议的资源。