MyCat 分库表,可以使用 join 语句

MyCat 分库表

此教程使用的是单表分两库

目录

MyCat 分库表

ー:下载

二:修改 server.xml    MyCat 服务级别的配置

三:修改 schema.xml 逻辑库的配置 主要配置的是逻辑库,逻辑表,数据节点,和实际数据源之间的关系

四:修改 rule.xml

五:修改 MySQL 数据库

六:测试


ー:下载


目前只有 1.6.5版本 以上支持单库分表。

下载,解压使用即可。

解压后,修改配置文件,在 mycat/conf

 

二:修改 server.xml    MyCat 服务级别的配置


MyCat 的配置文件,设置账号、参数等.



        123456
        mydb

设置 user namepasswordschemas; 主要做的功能就是 逻辑库与用户 做映射。

namepassword 在连接代理数据库 MyCat 时使用;

schemas 是逻辑库,要和 schema.xml 里的 schema name 对应。

 

三:修改 schema.xml 逻辑库的配置 主要配置的是逻辑库,逻辑表,数据节点,和实际数据源之间的关系


mycat 逻辑数据库、表的映射关系

mysql 数据节点、所属物理数据库的映射关系。

 

Mycat 对应的物理数据库和数据库表的配置





    
        
        
    

    
    

    
        select user()
        
        
    

    
        select user()
        
        
    
    


 
  

schema name 要和 server.xml 对应上,既多个用户拥有对该逻辑库的权限。

city 设置分表三张,单库多表只能设置一个 datanoterule 采用取模模式 mod-long 取模分片。

writeHostreadHost 设为同一数据库。

 

四:修改 rule.xml


MyCat 分片(分库分表)规则,mod-long 取模分片  取模列为 id 取模算法为 mod-long


    
        id
        mod-long
    



    
    2

此次选用默认的 mod-long 规则,只需修改 count 数.

修改 property count 等于 2

这样,配置已经完成。

 

五:修改 MySQL 数据库


先在 MySQL 库上,建 2 张表,lsqtable 。


                MyCat 分库表,可以使用 join 语句_第1张图片                MyCat 分库表,可以使用 join 语句_第2张图片


启动 Mycat

启动:
./mycat start


查看启动状态:
./mycat status


停止:
./mycat stop


重启(改变上面的 xml 配置不用重启,管理端可以重新载入):
./mycat restart


查看 logs/ 下的 wrapper.log 和 mycat.log 可以查看运行时问题和异常。
mycat 启动日志:
cat ./logs/wrapper.log

mycat 应用日志:
cat ./logs/mycat.log

 

六:测试


mysql 创建 mydb 数据库,两个数据源分别创建 lsqtable

连接 mycat, 端口:8066,账号:lsq, 密码:123456                // 对应 server 表中的 user 标签

执行 sql 语句,查看执行过程。

 

EXPLAIN

insert into lsqtable(id, l, s, q) VALUES (1, 'l1', 's1', 'q1')

可以分析 update 语句,或者 select 语句,可知偶数的 id 都被路由到了第一个库,奇数的 id 都被路由到了第二个库,因为 datanode1 作为第一个节点 0,datanode2 作为第二个节点 1。使用除留余数法,偶数的余数都为 0,而奇数的余数都为 1。打开 mysql 中的 mydb 数据库 lsqtable 表可看到数据:


MyCat 分库表,可以使用 join 语句_第3张图片MyCat 分库表,可以使用 join 语句_第4张图片


可查看执行过程路由到物理表 dn1 库所在表上:

explain SELECT * FROM lsqtable WHERE id = 3

datanode    sql
dn2         SELECT * FROM lsqtable WHERE id = 3

3 % 2 = 1 会路由到 1 的节点。dn2 xml 配置中属于 1 的节点。从 0 开始

 

你可能感兴趣的:(MyCat从入门到放弃)