不讲概念,讲实操,mysql 分表模糊查询、分页查询 及 merge 表的使用

1.Mysql merge合并表的要求

  • 1.合并的分表必须是 MyISAM 引擎,MyISAN引擎是不支持事务的。
  • 2.Merge表只保证合表后数据唯一性,合表前的数据可能会存在重复。
  • 3.表的结构必须一致,包括索引、字段类型、引擎和字符集。
  • 4.删除 tb_member1 分表正确的做法是
ALTER TABLE `tb_member_all` UNION (tb_member1);
DROP TABLE IF EXISTS `tb_member1`;

如果直接删除tb_member1,tb_member2表会报错。

  • 5.不能自动分表,需要定期维护。

2.创建2个分表(Navcat中运行查询)

DROP TABLE IF EXISTS `tb_member1`;
CREATE TABLE `tb_member1`  (`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(50) NOT NULL COMMENT '名称',`code` varchar(100) NOT NULL COMMENT '标识',PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '分表1';DROP TABLE IF EXISTS `tb_member2`;
CREATE TABLE `tb_member2`  (`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(50) NOT NULL COMMENT '名称',`code` varchar(100) NOT NULL COMMENT '标识',PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '分表2';

3.创建1个主表壳(Navcat中运行查询)

DROP TABLE IF EXISTS `tb_member_all`;
CREATE TABLE `tb_member_all`  (`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(50) NOT NULL COMMENT '名称',`code` varchar(100) NOT NULL COMMENT '标识',PRIMARY KEY (`id`) USING BTREE
) ENGINE=MERGE UNION=(tb_member1,tb_member2) INSERT_METHOD=LAST CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '总表';

最后我们得到3张表:tb_member1(分表),tb_member2(分表),tb_member_all(总表)

4. 分别向 tb_member1(分表),tb_member2(分表) 插入数据

INSERT INTO `sysab`.`tb_member1`(`id`, `name`, `code`) VALUES (1, '1', '1');
INSERT INTO `sysab`.`tb_member1`(`id`, `name`, `code`) VALUES (2, '11', '11');
INSERT INTO `sysab`.`tb_member1`(`id`, `name`, `code`) VALUES (3, '111', '111');INSERT INTO `sysab`.`tb_member2`(`id`, `name`, `code`) VALUES (1, '2', '2');
INSERT INTO `sysab`.`tb_member2`(`id`, `name`, `code`) VALUES (2, '22', '22');
INSERT INTO `sysab`.`tb_member2`(`id`, `name`, `code`) VALUES (3, '222', '222');

在这里插入图片描述

5. 查询 tb_member_all(总表) 的数据是这样子的

注意:我们并没有向 tb_member_all(总表) 表插入任何数据。

在这里插入图片描述
在这里插入图片描述
上面查询的结果中,id字段值(3,2,1,2,1,3) 有重复好像不太理想,可以在分表插入数据时使用雪花ID,这样总表查询出来的id就是唯一了。

6. 对这个 tb_member_all(总表) 进行模糊查询、分页查询

7. 自动分表,在总表 tb_member_all(总表) 中创建存储过程

未测试,自行研究

drop PROCEDURE if EXISTS createtb;
create PROCEDURE createtb()
BEGINDECLARE tname VARCHAR (255);DECLARE i INT DEFAULT 1;DECLARE uniontb VARCHAR (255) DEFAULT '';SET tname = CONCAT('t', nextval('tb_member_all'));set @sqlstr = CONCAT('create table ',tname,' like t1');prepare stmt from @sqlstr;EXECUTE stmt;deallocate prepare stmt;WHILE i <= currval ('tb_member_all') DOSET uniontb = CONCAT(uniontb, CONCAT('t', i), ',');SET i = i + 1;END WHILE;set uniontb = LEFT(uniontb,LENGTH(uniontb) - 1);set @sqlstr = CONCAT('ALTER TABLE tb_member_all ENGINE = MERGE UNION = (',uniontb,') INSERT_METHOD = LAST');prepare stmt from @sqlstr;EXECUTE stmt;deallocate prepare stmt;
end
-- 创建事件
CREATE EVENT test_eventON SCHEDULE EVERY 1 DAYSTARTS date_add(date(curdate() + 1),interval 3 hour)DO call createtb; 

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

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

相关文章

Python实现BOA蝴蝶优化算法优化卷积神经网络分类模型(CNN分类算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算…

[技术闲聊]我对电路设计的理解(三)

终于可以独立做项目了&#xff0c;是不是很激动&#xff0c;是不是为自己骄傲和自豪&#xff0c;应该的&#xff0c;奋斗那么久不就是为了站在山巅看看四周的风景嘛&#xff01; 虽说山外还有山&#xff0c;但是此刻就在脚下的山巅上&#xff0c;怡然自得都是不过分的&#xff…

LLM端侧部署系列 | 如何将阿里千问大模型Qwen部署到手机上?实战演示(下篇)

引言 简介 编译Android可用的模型 转换权重 生成配置文件 模型编译 编译apk 修改配置文件 绑定android library 配置gradle 编译apk 手机上运行 安装 APK 植入模型 效果实测 0. 引言 清明时节雨纷纷&#xff0c;路上行人欲断魂。 小伙伴们好&#xff0c;我是《小…

9.动态规划——4.最长公共子序列(动态规划类的算法题该如何解决?)

例题——最长公共子序列(一) 分析 设最长公共子序列 d p [ i ] [ j ] dp[i][j] dp[i][j]是 S 1 S_1 S1​的前 i i i个元素&#xff0c;是 S 2 S_2 S2​的前 j j j个元素&#xff0c;那么有&#xff1a; 若 S 1 [ i − 1 ] S 2 [ i − 1 ] S_1[i-1]S_2[i-1] S1​[i−1]S2​[…

leetcode刷题-代码训练营-第7章-回溯算法1

回溯法模板 void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择&#xff1a;本层集合中元素&#xff08;树中节点孩子的数量就是集合的大小&#xff09;) {处理节点;backtracking(路径&#xff0c;选择列表); // 递归回溯&#xff0c;撤销处理结果} }理解 从…

小林coding图解计算机网络|基础篇02|键入网址到网页显示,期间发生了什么?

小林coding网站通道&#xff1a;入口 本篇文章摘抄应付面试的重点内容&#xff0c;详细内容还请移步&#xff1a;小林coding网站通道 文章目录 孤单小弟——HTTP真实地址查询——DNS指南好帮手——协议栈可靠传输——TCP远程定位——IP两点传输——MAC出口——网卡送别者——交…

Linux是什么,该如何学习

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Linux &#xff1a;从菜鸟到飞鸟的逆袭》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、Linux的起源与发展 2、Linux在现代计算机领域…

Golang 内存管理和垃圾回收底层原理(一)

一、这篇文章我们来聊聊Golang内存管理和垃圾回收&#xff0c;主要注重基本底层原理讲解&#xff0c;进一步实战待后续文章 1、这篇我们来讨论一下Golang的内存管理 先上结构图 从图我们来讲Golang的基本内存结构&#xff0c;内存结构可以分为&#xff1a;协程缓存、中央缓存…

Excel 粘贴回筛选后的单元格不能完全粘老是少数据 ,有些单元格还是空的

环境&#xff1a; excel2021 Win10专业版 问题描述&#xff1a; excel 粘贴回筛选后的单元格不能完全粘老是少数据 有些单元格还是空的 复制选择筛选后A1-A10单元格 &#xff0c;定位条件&#xff09;&#xff08;仅可见单元格&#xff09;来访问&#xff0c;或者你可以使用…

mybatis-plus 表字段存在关键字的处理办法

一、问题复现 当数据库表中字段出现关键字时&#xff0c;若不做其他处理&#xff0c;mybatis-plus的BaseMapper并不会做其他的处理&#xff0c;最终导致SQL执行时&#xff0c;抛出SQL 语法错误。示例如下&#xff1a; Java查询语句 QueryWrapper<User> userQuery new …

Kubernetes(k8s)核心资源解析:Pod详解

Kubernetes核心资源解析&#xff1a;Pod详解 1、什么是Pod&#xff1f;2、Pod 的组成3、Pod 如何管理多个容器4、Pod 的网络5、Pod 的存储方式6、Pod 的工作方式6.1 自主式 Pod6.2 监控和管理 Pod6.3 Pod 的创建流程 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收…

解锁动态规划:从斐波那契到高效算法

动态规划&#xff08;Dynamic Programming, DP&#xff09;是解决优化问题的一种算法策略&#xff0c;它将一个复杂问题分解为更小的子问题&#xff0c;通过解决子问题来逐步找到复杂问题的最优解。动态规划适用于有重叠子问题和最优子结构性质的问题。接下来&#xff0c;我们通…

基于SSM的药店药品商城管理系统

介绍 本项目分为前后台&#xff0c;分为管理员与普通用户两种角色&#xff0c;管理员登录后台&#xff0c;普通用户登录前台&#xff1b; 管理员角色包含以下功能&#xff1a; 管理员登录,订单管理,客户管理,药品管理,类目管理等功能。用户角色包含以下功能&#xff1a; 用户首…

pycharm打包python文件为exe文件(图文教程)

1.安装pyinstaller库 pip3 install pyinstaller 2.使用pyinstaller 打包文件 首先确保Terminal命令行中&#xff0c;你的路径和你的项目是同一个路径 我的项目就是放在golden_dev中的。 3.命令行内输入打包代码 pyinstaller -F -w gold_miner.py gold_miner.py 是我的项目…

高斯消元详解

算法概述 高斯消元法是一个用来求解线性方程组的算法 那么什么是线性方程组呢? 线性:每个未知数次数都为1次方程组:多个方程&#xff0c;多个未知数。 &#xff08;a1x1a2x2..anxnbn&#xff09;x为一次的 当x是平方的时候就不是线性 简而言之就是有多个未知数&#xff…

0基础学习Mybatis系列数据库操作框架——多环境配置

大纲 配置代码参考资料 在实际开发中&#xff0c;我们往往会将开发环境分成&#xff1a;开发、测试、线上等环境。这些环境的数据源不一样&#xff0c;比如开发环境就不能访问线上环境&#xff0c;否则极容易出现线上数据污染等问题。Mybatis通过多环境配置分开定义来解决这个问…

Shell脚本之基本语法

目录 一、变量定义 变量命名规则&#xff1a; 变量的赋值&#xff1a; 只读变量&#xff1a; 删除变量&#xff1a; 二、变量的类型 自定义变量&#xff1a; 环境变量&#xff1a; 位置参数&#xff1a; 预定义变量&#xff1a; 三、键盘输入 四、数值运算 为什么…

数据结构—堆

什么是堆 堆是一种特殊的树形结构&#xff0c;其中每个节点都有一个值。堆可以分为两种类型&#xff1a;最大堆和最小堆。在最大堆中&#xff0c;每个节点的值都大于等于其子节点的值&#xff1b;而在最小堆中&#xff0c;每个节点的值都小于等于其子节点的值。这种特性使得堆…

RPA自动化小红书自动化写文以及发文!

1、视频演示 RPA自动化小红书自动写作发文 2、核心功能点 采集笔记&#xff1a;采集小红书上点赞量大于1000的爆款笔记 下载素材&#xff1a;下载爆款笔记的主图 爆款改写&#xff1a;根据爆款笔记的标题仿写新的标题以及新的文案 自动发布&#xff1a;将爆款笔记发布到小红…

Three.js——scene场景、几何体位置旋转缩放、正射投影相机、透视投影相机

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…