15天学习MySQL计划(运维篇)分库分表-监控-第十四天(中)

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS Agent(兼容OpenClaw),2核4GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 15天学习MySQL计划(运维篇)分库分表-监控-第十四天(中)

3.server.xml

server.xml配置文件包含了mycat的系统配置信息,主要有两个重要的标签:system,user、

1.system标签

对应的系统配置项及其含义,参考资料

2.user标签

priviege权限设置字段:
​ dml='0000'=增 改 查 删
​ 0为关闭,1为开启

5.mycat分片

1.垂直分表

场景:

在业务系统中,涉及以下表结构,但是由于用户与订单每天都会产生大量的数据,单台服务器的数据存储及处理能力是有限的,可以对数据库进行拆分,原有的数据库表如下。

流程:

  1. 分别在三台MySQL中创建数据库(shopping)
  2. 修改schema.xml
  3. 修改server.xml
  4. 测试:创建表,插入数据
  5. schema.xml内容:
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
  <schema name="SHOPPING" checkSQLschema="true" sqlMaxLimit="100">
   <table name="tb_goods_base" dataNode="dn1" primaryKey="id"/>
   <table name="tb_goods_brand" dataNode="dn1" primaryKey="id"/>
   <table name="tb_goods_cat" dataNode="dn1" primaryKey="id"/>
   <table name="tb_goods_desc" dataNode="dn1" primaryKey="goods_id"/>
   <table name="tb_goods_item" dataNode="dn1" primaryKey="id"/>
   <table name="tb_order_item" dataNode="dn1,dn2,dn3" primaryKey="id" type="global"/>
   <table name="tb_order_master" dataNode="dn1,dn2,dn3" primaryKey="order_id" type="global"/>
   <table name="tb_order_pay_log" dataNode="dn2" primaryKey="out_trade_no"/>
   <table name="tb_user" dataNode="dn3" primaryKey="id"/>
   <table name="tb_user_address" dataNode="dn3" primaryKey="id"/>
   <table name="tb_areas_provinces" dataNode="dn3" primaryKey="id"/>
   <table name="tb_areas_city" dataNode="dn3" primaryKey="id"/>
   <table name="tb_areas_region" dataNode="dn3" primaryKey="id"/>
  </schema>
  <dataNode name="dn1" dataHost="dhost1" database="shopping" />
  <dataNode name="dn2" dataHost="dhost2" database="shopping" />
  <dataNode name="dn3" dataHost="dhost3" database="shopping" />
  <dataHost name="dhost1" maxCon="1000" minCon="10" balance="0"
        writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"  slaveThreshold="100">
    <heartbeat>select user()</heartbeat>
    <writeHost host="master" url="jdbc:mysql://192.168.2.1:3306?useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=utf8" user="root" password="1234.Com" />
  </dataHost>
  <dataHost name="dhost2" maxCon="1000" minCon="10" balance="0"
        writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"  slaveThreshold="100">
    <heartbeat>select user()</heartbeat>
    <writeHost host="master" url="jdbc:mysql://192.168.2.2:3306?useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=utf8" user="root" password="1234.Com" />
  </dataHost>
  <dataHost name="dhost3" maxCon="1000" minCon="10" balance="0"
        writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"  slaveThreshold="100">
    <heartbeat>select user()</heartbeat>
    <writeHost host="master" url="jdbc:mysql://192.168.2.3:3306?useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=utf8" user="root" password="1234.Com" />
  </dataHost>
</mycat:schema>

server.xml内容

<user name="root" defaultAccount="true">
    <property name="password">123456</property>
    <property name="schemas">SHOPPING</property>
</user>

2.水平分表

在业务系统中,有一张(日志表),业务系统每天都会产生大量的日志数据,单台服务器的数据存储及处理能力是有限的,可以对数据库表进行拆分。

对tb_log表进行拆分

1.schema.xml配置
<schema name="ITCAST" checkSQLschema="true" sqlMaxLimit="100">
    <table name="tb_log" dataNode="dn4,dn5,dn6" primaryKey="id" rule="mod-long"/>
</schema>
  <dataNode name="dn4" dataHost="dhost1" database="itcast" />
  <dataNode name="dn5" dataHost="dhost2" database="itcast" />
  <dataNode name="dn6" dataHost="dhost3" database="itcast" />
2.server.xml的配置
<user name="root" defaultAccount="true">
    <property name="password">123456</property>
    <property name="schemas">SHOPPING,ITCAST</property>
</user>

6.分片规则

1.范围分片

根据指定的字段及其配置的范围与数据节点的对应情况,来决定该数据属于哪一个分片

自定义分片范围

2.取模分片

根据指定的字段值与节点数量进行求模运算,根据运算结构,来决定该数据属于哪个分片。

取模分片配置

3.一致性hash

所谓一致性哈希,相同的哈希因子计算值总是被划分到相同的分区表中,不会因为分区节点的增加而改变原来的数据的分区位置。

一致性hash配置

通过在配置文件中配置可能的枚举值,指定数据分布到不同数据节点上,本规则适用于按照省份,性别,状态拆分数据等业务。

枚举分片配置

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
8月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
889 6
|
9月前
|
关系型数据库 MySQL 数据管理
Mysql基础学习day03-作业
本内容包含数据库建表语句及多表查询示例,涵盖内连接、外连接、子查询及聚合统计,适用于员工与部门数据管理场景。
170 1
|
8月前
|
存储 运维 监控
57_大模型监控与运维:构建稳定可靠的服务体系
随着大语言模型(LLM)技术的快速发展和广泛应用,如何确保模型在生产环境中的稳定运行、高效服务和安全合规已成为企业和开发者面临的关键挑战。2025年,大模型服务已从实验室走向各行各业的核心业务流程,其运维复杂度也随之呈指数级增长。与传统软件系统不同,大模型服务具有参数规模庞大、计算密集、行为不确定性高等特点,这使得传统的运维监控体系难以满足需求。
1612 0
|
9月前
|
SQL 关系型数据库 MySQL
Mysql基础学习day02-作业
本教程介绍了数据库表的创建与管理操作,包括创建员工表、插入测试数据、删除记录、更新数据以及多种查询操作,涵盖了SQL语句的基本使用方法,适合初学者学习数据库操作基础。
191 0
|
9月前
|
SQL 关系型数据库 MySQL
Mysql基础学习day03
本课程为MySQL基础学习第三天内容,主要讲解多表关系与多表查询。内容涵盖物理外键与逻辑外键的区别、一对多、一对一及多对多关系的实现方式,以及内连接、外连接、子查询等多表查询方法,并通过具体案例演示SQL语句的编写与应用。
262 0
|
9月前
|
SQL 关系型数据库 MySQL
Mysql基础学习day01-作业
本教程包含三个数据库表的创建练习:学生表(student)要求具备主键、自增长、非空、默认值及唯一约束;课程表(course)定义主键、非空唯一字段及数值精度限制;员工表(employee)包含自增主键、非空字段、默认值、唯一电话号及日期时间类型字段。每个表的结构设计均附有详细SQL代码示例。
171 0
|
9月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
576 158
|
9月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
9月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1492 152
|
9月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1073 156

推荐镜像

更多