Mycat2(一)简介、分库分表概念-创新互联

文章目录
  • mycat是什么;为什么要用;
  • mycat的作用
  • 原理
  • 分库分表的意义
    • 数据库优化的层次:
  • 数据切分的方式,带来的问题和解决方案
    • 分库分表带来的问题
  • mycat的特性与详细配置含义
  • mycat2与mycat1.6区别
    • mycat2映射模型
    • 多数据源解决方案
    • mycat核心概念
    • mycat全局ID
  • mycat监控与日志查看

目前创新互联已为1000多家的企业提供了网站建设、域名、虚拟空间、网站托管维护、企业网站设计、襄汾网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。mycat是什么;为什么要用;

mycat是数据库中间件。(中间件:是一类链接软件组件和应用的计算机软件,以便于软件各部件之间的交互)。
为什么要用mycat:

  1. Java与数据库高耦合。
  2. 高访问量高并发对数据库的压力。
  3. 读写请求数据不一致。
mycat的作用
  1. 读写分离
  2. 数据分片(分库分表):垂直拆分(分库)、水平拆分(分表)、垂直水平拆分(分库分表)
  3. 多数据源整合
原理

Mycat的原理中最重要的一个动词是“拦截”’,它拦截了用户发送过来的SQL语句,首先对SQL语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此SQL发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。
在这里插入图片描述

分库分表的意义

作为数据库优化方案,解决数据库性能瓶颈问题。
数据库性能瓶颈出现的原因:连接、速度、存储。
常见数据库瓶颈问题:
- 数据库数量大,查询效率低
- 分布式数据库架构复杂对接困难
- 高访问、高并发对数据库压力大

数据库优化的层次:
  1. SQL与索引
  2. 表、存储引擎
  3. 集群架构:主从复制(一主一从、一主多从、双主架构、多主多从)、分库分表
    主从:replicate 冗余
    分片:shard
  4. 数据库配置优化(连接数)
  5. OS、Hardware

架构演进:单应用单数据库 ->多应用单数据库 ->多应用独立数据库

数据切分的方式,带来的问题和解决方案

分表:解决单表数据量过大导致的查询效率下降。理论分表500W,以实际业务为准。

  1. 垂直切分:基于字段的切分。
    eg:学生信息表拆分为学生基本信息表、学生学籍信息表、学生扩展信息表等
  • 垂直切分(单库)
    在这里插入图片描述
  • 垂直切分(多库)
    在这里插入图片描述
  1. 水平切分:基于数据的切分。得到的表结构是相同的,只是数据存储在不同表。
    eg:
  • 水平切分(单库):
    • 渠道交易流水表:channel_tran、channel_tran_month、channel_tran_history
    • 商户费用明细表:fee_detail_202211、fee_detail_202212、fee_detail_202301
  • 水平切分(单库):
    在这里插入图片描述
分库分表带来的问题
  1. 跨库的关联查询(要尽量避免跨库关联查询)

    • 字段冗余
    • 数据同步 etl
    • 全局表,在所有数据库都建立上
    • ER表跨库。eg:order_info、order_detail要求id相同的放到同一个库。
    • 数据组装
  2. 分布式事务:
    CAP:一致性、可用性、分区容错性。
    BASE:BA基本可用、S软状态(中间状态)、E最终一致

    • 全局事务:XA(两阶段提交)Atomikos
    • 基于可靠消息服务的分布式事务
      在这里插入图片描述
    • 柔性事务:TCC(Try Confirm Cancel)
      在这里插入图片描述
  3. 排序、分页、函数计算问题
    limit 1,10
    dn1: 1 3 5 7 9
    dn2: 2 4 6 8 10

  4. 全局主键
    Oracle:sequence

    • 时间戳(但时间戳不可以直接作为主键)
    • UUID(费空间、无序不适合做主键)
    • redis取一段数据做主键
    • 雪花算法(有序、QPS较高)
mycat的特性与详细配置含义 mycat2与mycat1.6区别

在这里插入图片描述
mycat2:路由注释、XA事务、MySQL8。

mycat2映射模型

在这里插入图片描述

多数据源解决方案

DAO(AbstractRoutingDataSource) - ORM(shardbatis) - JDBC(Sharding-JDBC) - Proxy(mycat) - Server(redis等特定数据库)

mycat核心概念

术语:主机/实例、物理数据库、物理表、分片、分片节点、分片键、分片算法、逻辑表、逻辑数据库

mycat全局ID
  1. 文件方式
  2. 数据库方式
  3. 本地时间戳
  4. ZK方式
mycat监控与日志查看

9066管理端口
show @@help;

参考文档:
http://dl.mycat.org.cn/mycat-definitive-guide.pdf

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


新闻标题:Mycat2(一)简介、分库分表概念-创新互联
文章网址:http://csdahua.cn/article/cscphd.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流