1.分库分表概述 工作过程 分片规则 目录结构 配置文件
分库分表概述 工作过程 分片规则 目录结构 配置文件
分库分表应用注意
1.在数据库设计时考虑垂直分库和垂直分表
2.数据量增加时,不要马上做水平分割,而是先考虑缓存处理、读写分离、使用索引等方式。如果以上方式不能解决,再考虑水平分库和水平分表
分库分表问题
1.跨节点连接查询问题(查询垂直分库中的关联数据),这种情况需要分多次查询
2.管理的数据库变多了
分库分表
将存放在一个数据库(主机)中的数据,按照特定方式进行拆分,分散存放到多个数据库(主机)中,以达到分散单台设备负载的效果
分类
①纵向切分
将单个表,拆分成多个表,分散到不同的数据库
将单个数据库的多个表进行分类,按业务类别分散到不同的数据库上
②水平分割
按照表中某个字段的某种规则,把表中的许多记录按行切分,分散到多个数据库中
mycat软件介绍
mycat是基于Java的分布式数据库系统中间层,为高并发环境的分布式访问提供解决方案
支持JDBC(java数据库连接)形式连接
支持MYSQL、Oracle、Sqlserver、Mongdb等
提供数据读写分离服务
可以实现数据库服务器高可用
提供数据分片服务
工作原理
mycat拦截用户发送的SQL语句,先解析这个SQL查找涉及到的表,然后获取SQL里分片字段的值,并匹配分片函数,获得分片列表,再将SQL发往这些分片去执行,最后收集和处理所有分片结果数据,并返回到客户端
Mycat支持提供10种分片规则
枚举法 sharding-by-intfile
固定分片 rule1
范围约定 auto-sharding-long
求模法 mod-long
日期列分区法 sharding-by-date
通配取模 sharding-by-pattern
ASCII码求模通配 sharding-by-prefixpattern
编程指定 sharding-by-substring
字符串拆分hash解析 sharding-by-stringhash
一致性 hash sharding-by-murmur
目录结构
ls /usr/local/mycat
bin mycat命令,与服务相关的命令,如 启动 停止 等
catlet 空的,作用是安扩展功能
conf 配置文件
lib 使用的jar包,服务运行过程中调用的程序和模块
log 启动日志和运行日志
wrapper.log mycat服务启动日志
mycat.log 记录SQL脚本执行后的报错内容
重要配置文件
server.xml 设置连接mycat的用户授权
rule.xml 定义mycat分片规则及规则对应的算法
schema.xml 逻辑库表的配置文件
ls /usr/local/mycat/conf/*.txt
autopartition-long.txt partition-hash-int.txt partition-range-mod.txt
ls /usr/local/mycat/conf/*.xml
ehcache.xml log4j.xml router.xml rule.xml schema.xml server.xml
标签:xml,分库,配置文件,mycat,sharding,分片,分表
From: https://www.cnblogs.com/lixunblogs/p/18167586