不讲概念,讲实操,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()
BEGIN
	DECLARE 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') DO
		SET 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_event
    ON SCHEDULE 
        EVERY 1 DAY
    STARTS date_add(date(curdate() + 1),interval 3 hour)
    DO call createtb; 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络爬虫:爬取假数据

网络爬虫&#xff1a;爬取假数据 文章目录 网络爬虫&#xff1a;爬取假数据前言一、项目介绍&#xff1a;二、项目来源&#xff1a;三、架构图&#xff1a;&#xff08;流程图&#xff09;四、使用了什么技术&#xff1a;&#xff08;知识点&#xff09;五、结果示意图&#xf…

DXP学习001-原理图的全局编辑

目录 一&#xff0c;元件标注的全局编辑 1&#xff0c;元件的标注 1&#xff09;order of processing排序执行顺序 2&#xff09;※matching options匹配选项 3&#xff09;annotate schematic注释原理图 ① schematic sheet ②annotate scope 注释范围 ③order顺序…

SpringCloud Hystrix 服务熔断、服务降级防止服务雪崩

文章目录 SpringCloud Hystrix 熔断器、服务降级防止服务雪崩需求背景引入依赖启动类加Hystrix注解接口配置熔断常规配置超时断开错误率熔断请求数熔断限流 可配置项HystrixCommand.Setter参数Command Properties 服务降级 SpringCloud Hystrix 熔断器、服务降级防止服务雪崩 H…

详解设计模式:单例的进化之路

概念 单例模式(Singleton Pattern)是设计模式中一个重要的模式之一&#xff0c;是确保一个类在任何情况下都绝对只有一个实例。单例模式一般会屏蔽构造器&#xff0c;单例对象提供一个全局访问点&#xff0c;属于创建型模式。 根据初始化时间的不同&#xff0c;可以将单例模式…

SpringCloud - 如何本地调试不会注册到线上环境(Nacos)?

问题描述 有时候我们需要本地调试注册到 Nacos 上&#xff0c;但是会影响线上服务的 Feign 请求打到本地导致不通影响了线上业务。 原因分析 一般最传统的解决方案就是修改本地 bootstrap.yml 的 spring.cloud.nacos.discovery.namespace spring:application:name: app-serv…

c语言--枚举类型(声明、使用、优点)

目录 一、枚举类型的声明二、 枚举类型的优点三、 枚举类型的使用 一、枚举类型的声明 枚举顾名思义就是一一列举。 把可能的取值⼀⼀列举。 比如我们现实生活中&#xff1a; ⼀周的星期⼀到星期日是有限的7天&#xff0c;可以⼀⼀列举 性别有&#xff1a;男、女、保密&#x…

WordPress 6.5 “里贾纳”已经发布

WordPress 6.5 “里贾纳”已经发布&#xff0c;其灵感来自著名爵士小提琴家Regina Carter的多才多艺。雷吉娜是一位屡获殊荣的艺术家和著名的爵士乐教育家&#xff0c;以超越流派而闻名&#xff0c;她在古典音乐方面的技术基础和对爵士乐的深刻理解为她赢得了大胆超越小提琴所能…

YUM仓库和编译安装

目录 一.YUM仓库搭建 1.简介&#xff1a; 2.搭建思路&#xff1a; 3.实验&#xff1a;单机yum的创建 二.编译安装 1.简介 2.安装过程 3.实验&#xff1a;编译安装nginx 一.YUM仓库搭建 1.简介&#xff1a; yum是一个基于RPM包&#xff08;是Red-Hat Package Manager红…

STL——vector容器基本使用与常用接口模拟实现

vector的介绍及使用 vector的介绍 vector是表示可变大小数组的序列容器。 就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问&#xff0c;和数组一样高效。但是又不像数组&#xff0c;它的大小是可以动态改变的…

【Apache Doris】周FAQ集锦:第 1 期

【Apache Doris】周FAQ集锦&#xff1a;第 1 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目&#xff01; 在这个栏目中&#xff0c;每周将筛选社区反馈的热门问题和话题&#xff0c;重点回答并进行深入探讨。旨在为广大用户和…

SD-WAN国际网络专线:高效、合规且可靠的跨境连接解决方案

在数字化时代&#xff0c;企业对跨境网络连接的需求日益增长。SD-WAN技术作为一种新兴的解决方案&#xff0c;正逐渐成为构建跨境网络连接的首选。本文将探讨SD-WAN国际网络专线的发展现状、合规性要求以及选择时需要考虑的关键因素。 SD-WAN技术&#xff1a;跨境网络连接的新…

STM32F407 FSMC并口读取AD7606

先贴一下最终效果图.这个是AD7606并口读取数据一个周期后的数据结果. 原始波形用示波器看是很平滑的. AD7606不知为何就会出现干扰, 我猜测可能是数字信号干扰导致的. 因为干扰的波形很有规律. 这种现象基本上可以排除是程序问题. 应该是干扰或者数字信号干扰,或者是数字和模拟…

MT3017 上色

思路&#xff1a;使用分治&#xff0c;在每个连续区域递归调用heng()和shu() #include <bits/stdc.h> using namespace std; int n, m; int h[5005];int shu(int l, int r) {return r - l 1; } int heng(int l, int r) {int hmin 0x3f3f3f3f;for (int i l; i < r;…

关于C#操作SQLite数据库的一些函数封装

主要功能&#xff1a;增删改查、自定义SQL执行、批量执行&#xff08;事务&#xff09;、防SQL注入、异常处理 1.NuGet中安装System.Data.SQLite 2.SQLiteHelper的封装&#xff1a; using System; using System.Collections.Generic; using System.Data.SQLite; using System.…

EDM邮件推广营销工具多少钱?

云衔科技&#xff0c;凭借专业的技术研发实力与丰富的行业经验&#xff0c;倾力打造了一款智能EDM&#xff08;Electronic Direct Mail&#xff09;邮件营销系统解决方案&#xff0c;以精准、高效、定制化的服务&#xff0c;为企业开启全新的营销之旅。至于价格&#xff0c;云衔…

计算机笔记(3)续20个

41.WWW浏览器和Web服务器都遵循http协议 42.NTSC制式30帧/s 44.三种制式电视&#xff1a;NTSC&#xff0c;PAL&#xff0c;SECAM 45.IP&#xff0c;子网掩码白话文简述&#xff1a; A类地址&#xff1a;取值范围0-127&#xff08;四段数字&#xff08;127.0.0.0&#xff09…

Hadoop和zookeeper集群相关执行脚本(未完,持续更新中~)

1、Hadoop集群查看状态 搭建Hadoop数据集群时&#xff0c;按以下路径操作即可生成脚本 [test_1analysis01 bin]$ pwd /home/test_1/hadoop/bin [test_01analysis01 bin]$ vim jpsall #!/bin/bash for host in analysis01 analysis02 analysis03 do echo $host s…

docker安装jenkins 2024版

docker 指令安装安装 docker run -d --restartalways \ --name jenkins -uroot -p 10340:8080 \ -p 10341:50000 \ -v /home/docker/jenkins:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker jenkins/jenkins:lts访问…

利用Python将TXT文件中的经纬度数据转换为JSON格式

在处理地理空间数据时&#xff0c;经常需要将数据从一种格式转换为另一种格式&#xff0c;以便于后续的分析或可视化。本文将介绍如何使用Python脚本将存储在TXT文件中的经纬度数据转换为JSON格式。 一、背景介绍 经纬度数据是地理信息系统&#xff08;GIS&#xff09;中的基…

关于ansible的模块 ③

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 接《关于Ansible的模块①》和《关于Ansible的模块②》&#xff0c;继续学习ansible的user模块。 user模块可以增、删、改linux远…