MyCat - 分片 - 数据库分片配置 | 学习笔记

简介: 快速学习 MyCat - 分片 - 数据库分片配置

开发者学堂课程【全面讲解开源数据库中间件 MyCat 使用及原理(四):MyCat - 分片 - 数据库分片配置】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/758/detail/13329


MyCat - 分片 - 数据库分片配置

内容介绍:

一、分析配置文件的定义

二、逻辑表分析

 

一、分析配置文件的定义

image.png

1.分析:

<schemaname="V_SHOP"checkSQLschema="false" sqlMaxLimit="100">

在 MyCat 中,配置了一个逻辑库,名为 V_SHOP 。

sqlMaxLimit="100" 限制分页为 100 条,

checkSQLschema="false" 与数据库名的校验问题有关。


二、逻辑表分析

在逻辑库下声明了很多逻辑表:

1.关于基础信息的全局表:

//区域表

<table name="tb_areas" dataNode="dn1, dn2, dn3, dn4" primaryKey="areaid" type="globa1"/>

//省份表

<table name="tb_provinces" dataNode="dn1 , dn2 , dn 3 , dn4" primaryKey="provinceid"type="globa1"/>

//市

<table name="tb_cities" dataNode="dn1 , dn2 ,dn3 , dn4" primar yKey="cityid" type="globa1"/>

//数据字典表,存储的是系统中的基本信息

<table name="tb_dictionary" dataNode="dn1, dn2 , dn3 , dn4" primaryKey="id" type="globa1"/>

type="globa1"/  表示为全局表

基础信息表要声明为全局表,全局表意味着四个表结构在四个节点中

都存在:

image.png

上面的 dn1 , dn2 , dn 3 , dn4 对应数据节点:

<dataNodename="dn1"dataHost="host1" database="v_goods"/>

<dataNodename="dn2"dataHost="host2"dat abase="v_order"/>

<dataNode name="dn3" dataHost="host3" dat abase="v_log”/>

<dataNode name="dn4" dataHost="host4" database="v_log”/>

也就是上面的四张表在该四个节点中都会存在。

2.关于商品模块涉及的表结构:

<tablename="tb_brand" dataNode="dn1" primaryKey="id"/>

<tablename="tb_category"dataNode="dn1" primaryKey="id"/>

<table name="tb_sku" dataNode="dn1" primaryKey="id"/>

<table name="tb_spu" dataNode="dn1" primaryKey="id”/|I

商品模块涉及的表结构会存储在第一个节点,所以配置的 dataNode 为 dn1

3.与订单相关的表结构:

<table name="tb_order" dataNode="dn2" primaryKey="id"/>

<tablename="tb_order_item"dataNode="dn2" primaryKey="id"/>

<tablename="tb_order_log"dataNode="dn2" primaryKey="id"/>

存在第二个节点

4.第三个节点和第四个节点中都是存储的 tb_operatelog

下面的逻辑表会分散存储在 dn3 和 dn4 两个节点

<table name="tb_operatelog"dataNode="dn3,dn4" primar yKey="id" rule="log-sharding-by-murmur" />

</schema>

如果插入一条数据,要存储到 dn3 还是 dn4 需要配置对应的分片规则。

5.思考用什么分片规则
打开 operatelog 表:

image.png

该 id 是采用了一个分布式 id 生成器,并且是 long 类型的数据。

取模分片可用,得到当前的 id 值,然后模于当前的数量。

范围分片,范围分片指的是 0-500 条记录向第一个界面中传,这里不适合,因为该 id 并不是组件自增的。

枚举分片也不适合,枚举分片主要适用于年龄、状态(如果状态为 1,存储第一个节点,如果状态为 2,存储到第二个节点)

范围求模分片,因为其涉及到范围,所以不适合。

我们要通过分析,找到适合的分片规则。

对当前的案例,可以采用一致性 hash 分片,意味其会根据 hash 算法来决定当前的 id 被分到哪个节点。

6.节点主机中的配置:

部分代码:

//最大连接数、最小连接数、负载均衡策略

<dataHost name="host1" maxCon="100o" minCon="10" balance="o"

writeType="o"dbType="mysq1"dbDriver="native" switchType="1" slaveThreshold="100">

<heartbeat>select user()</heartbeat>

<writeHosthost="hostM1" ur1="192.168.192.158:3306"user="root" password="itcast"> </writeHost>

</ dataHost>

当前第一个节点对应的是 158:3306

第二个节点对应 159:3306

第三个节点对应 160:3306

第四个节点对应 161:3306

这就是当前对核心的配置文件的分析,这份配置文件中的逻辑库、逻辑表这一部分的配置完全根据我们之前分析的架构图。

相关文章
|
3月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
392 93
|
6月前
|
关系型数据库 MySQL 数据库连接
Django数据库配置避坑指南:从初始化到生产环境的实战优化
本文介绍了Django数据库配置与初始化实战,涵盖MySQL等主流数据库的配置方法及常见问题处理。内容包括数据库连接设置、驱动安装、配置检查、数据表生成、初始数据导入导出,并提供真实项目部署场景的操作步骤与示例代码,适用于开发、测试及生产环境搭建。
285 1
|
3月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
448 7
|
3月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
628 5
|
6月前
|
安全 Java 数据库
Jasypt加密数据库配置信息
本文介绍了使用 Jasypt 对配置文件中的公网数据库认证信息进行加密的方法,以提升系统安全性。主要内容包括:1. 背景介绍;2. 前期准备,如依赖导入及版本选择;3. 生成密钥并实现加解密测试;4. 在配置文件中应用加密后的密码,并通过测试接口验证解密结果。确保密码安全的同时,保障系统的正常运行。
425 3
Jasypt加密数据库配置信息
|
5月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
483 0
|
8月前
|
Java 关系型数据库 MySQL
JDK、Tomcat、MariaDB数据库和Profile多环境的配置与使用
以上就是JDK、Tomcat、MariaDB数据库和Profile多环境的配置与使用的基本步骤。这些步骤可能会因为你的具体需求和环境而有所不同,但是基本的思路是一样的。希望这些信息能够帮助你更好地理解和使用这些工具。
288 17
|
3月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
165 3
|
3月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
3月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
802 152

热门文章

最新文章