【Mycat 2】详解分库分表设计方案及实操测试(二)

文章目录

  • 4. 分表、不分实例、不分库
    • 4.1 数据分片映射关系
    • 4.2 测试过程
  • 5. 分实例、分表、不分库
    • 5.1 分库键和分表键相同
      • 5.1.1 数据分片映射关系
      • 5.1.2 测试过程
    • 5.2 分库键和分表键不相同
      • 5.2.1 数据分片映射关系
      • 5.2.2 测试过程
  • 6. 不分片
    • 6.1 普通表
      • 6.1.1 数据映射关系
      • 6.1.2 测试过程
    • 6.2 全局(广播)表
      • 6.2.1 数据映射关系
      • 6.2.2 测试过程
  • 三、总结

说明
本文将不再使用 Mycat 的序列功能,因为该功能过于鸡肋,实现度低,难用问题多。

4. 分表、不分实例、不分库

不分库只分表,分片键为 id。

4.1 数据分片映射关系

逻辑表名为 not_db_tb

分片 ID分片键物理实例(存储节点)物理库物理表描述
0idrep01Srcshardingnot_db_tb_0id 双数
1idrep01Srcshardingnot_db_tb_1id 单数

注释
MOD_HASH() 其实是对 id 散列化后的散列值取模,在本例中即单双。本文仅为简化说明,实则所有 id 单/双数id%10 等均表示此意。

4.2 测试过程

# drop old table, and delete old data record
drop table if exists not_db_tb;# create table
/*+ mycat:createTable{"schemaName":"sharding","shardingTable":{  "createTableSQL":"create table not_db_tb(id int primary key,name varchar(10),city varchar(10)) tbpartition by MOD_HASH(id) tbpartitions 2","function":{"properties":{"dbNum":1,"tableNum":2,"tableMethod":"mod_hash(id)","mappingFormat":"cls0/sharding/not_db_tb_${tableIndex}","storeNum":2}}},"tableName":"not_db_tb"
} */;# insert data
insert into not_db_tb(id,name,city) values(1,'a','sh'),(2,'b','sh'),(3,'c','bj'),(4,'d','sh'),(5,'e','sz'),(6,'f','bj'),(7,'g','bj'),(8,'h','sz');# connect to physical mysql database by mysql client directly
table not_db_tb_0;
table not_db_tb_1;# check data
select t.* from not_db_tb t order by id;

Mycat 逻辑库
在这里插入图片描述

cls0 对应的物理库中的分片表1
在这里插入图片描述

cls0 对应的物理库中的分片表2
在这里插入图片描述

测试结果表明:
单库(即不分库)分表按配置的分片规则分片成功了。

5. 分实例、分表、不分库

本章采用“分实例分表、不分库”的方式分库分表,逻辑方案名、物理方案名均为 sharding

</

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/94121.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

本地部署 CodeLlama 并在 VSCode 中使用 CodeLlama

本地部署 CodeLlama 并在 VSCode 中使用 CodeLlama 1. CodeLlama 是什么2. CodeLlama Github 地址3. 下载 CodeLlama 模型4. 部署 CodeLlama5. 在 VSCode 中使用 CodeLlama6. 使用WSGI启动服务7. 创建 start.sh 启动脚本 1. CodeLlama 是什么 Code Llama 是一个基于 Llama 2 的…

Navicat 强大的数据模型功能 | 面向数据库设计、架构和数据资产梳理等使用场景

数据模型是用来描述数据、组织数据和对数据进行操作的一组概念和定义。根据不同的应用需求&#xff0c;数据模型可以分为概念模型、逻辑模型和物理模型。这些数据模型帮助数据库设计人员设计和管理数据库&#xff0c;以满足用户的需求。 Navicat 强大的数据模型功能主要适用于…

Linux内核源码分析 (A)常见内核面试题

Linux内核源码分析 (A)常见内核面试题 文章目录 Linux内核源码分析 (A)常见内核面试题调用 schedule() 进行进程切换的方式有几种CFS调度器vruntime的计算方式 网站收集面试题集合1 调用 schedule() 进行进程切换的方式有几种 系统调用 do_fork()&#xff1a;copy_process()定…

用idea查看sqlite数据库idea sqlite

1、安装Database Navigator插件 2、导入数据库并查看 3、删除数据库连接 在此做个笔记

LabVIEW液压支架控制系统的使用与各种配置的预测模型的比较分析

LabVIEW液压支架控制系统的使用与各种配置的预测模型的比较分析 模型预测控制在工业中应用广泛。这种方法的优点之一是在求解最优控制问题时能够明确考虑对输入和输出状态施加的约束。控制对象模型用于有限时间范围内最优控制的实时计算。所使用的数学设备允许从具有单输入和单…

WordPress(3)会员插件安装

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、服务器中上传插件二、使用步骤1.启动插件前言 提示:会员插件的安装不能在网站后台插件中心中直接安装原因我还没有排查 原因:会导致网站停止运行 一、服务器中上传插件 二、使用步骤 …

天津专业大数据培训班 教你分析大数据行业前景

大数据分析是IT行业挺火的词汇&#xff0c;围绕大数据分析产生的数据仓库、数据安全、数据挖掘等商业价值也渐渐地被挖掘了出来&#xff0c;大数据时代渐渐来临...... 大数据是什么 随着科技的发展&#xff0c;尤其是互联网的深入&#xff0c;新兴了大数据这个行业&#xff0…

数据结构day05(单链表)

今日任务&#xff1a; 思维导图&#xff1a; 实现 代码&#xff1a;&#xff08;多文件&#xff09; head.h #ifndef __HEAD_H__ #define __HEAD_H__#include <stdio.h> #include <string.h> #include <stdlib.h> typedef int datatype;typedef struct Lin…

java八股文面试[数据库]——MySQL索引的数据结构

知识点&#xff1a; 【2023年面试】mysql索引的基本原理_哔哩哔哩_bilibili 【2023年面试】mysql索引结构有哪些&#xff0c;各自的优劣是什么_哔哩哔哩_bilibili

SIEM中的安全事件管理

组织经常面临意外和未知的安全威胁&#xff0c;无论威胁的级别、类型或大小如何&#xff0c;它们的存在都会对企业的整体运作产生冲击&#xff0c;事件管理是尽快识别和响应这些中断以最大程度地减少其对日常业务运营的影响的过程。 什么是安全事件 安全事件是指示对组织网络…

Linux中创建文件夹,删除文件夹

Linux中创建目录&#xff1a;mkdir 文件夹&#xff0c; 比如&#xff1a;mkdir test 删除文件夹&#xff1a;rm -rf 文件夹&#xff0c; 比如&#xff1a;rm -rf soft vi强制不保存退出命令&#xff1a;q&#xff01;

python“魂牵”京东商品历史价格数据接口(含代码示例)

要通过京东的API获取商品详情历史价格数据&#xff0c;您可以使用京东开放平台提供的接口来实现。以下是一种使用Java编程语言实现的示例&#xff0c;展示如何通过京东开放平台API获取商品详情历史价格数据&#xff1a; 首先&#xff0c;确保您已注册成为京东开放平台的开发者…