mysql分表+分页查询

mysql分表+分页查询随着项目运行的时间越来越长 有些数据的存储也会越来越大 比如一些点击量 浏览量量 单表的数据可以到达上千万条数据 这时候会存在单表数据过大 查询效率低的问题 为了提高查询效率这时候需要对单表进行拆分 比如一张 1000 万条数据的表 我们需要把它拆分为 10 张表 一张表就需要 100 万 my

随着项目运行的时间越来越长,有些数据的存储也会越来越大,比如一些点击量,浏览量量,单表的数据可以到达上千万条数据,这时候会存在单表数据过大,查询效率低的问题,为了提高查询效率这时候需要对单表进行拆分,比如一张1000万条数据的表,我们需要把它拆分为10张表,一张表就需要100万,mysql中单表都有一个最大存储的阈值,数据量不能超过这个值;
分表之间,我们需要去生产一个上万条的数据的表,这里我生产了如下的数据:
在这里插入图片描述
我需要对这张表进行拆分多张,我这里拆分了2张表;
第一步:
表一:










DROP table IF EXISTS tb_member1; create table tb_member1( id bigint primary key auto_increment , name varchar(20), age tinyint not null default '0' )ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;  
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

表二:

DROP table IF EXISTS tb_member2; create table tb_member2( id bigint primary key auto_increment , name varchar(20), age tinyint not null default '0' )ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;  
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

接下来开始进行拆分:

insert into tb_member1(id,name,sex) select id,name,sex from dd_user where id%2=0; insert into tb_member2(id,name,sex) select id,name,sex from dd_user where id%2=1;  
   
  • 1
  • 2

接下来,我们需要考虑的是一张user表被拆分成2张表,那分页如何实现呢?
第一步:
创建一个主表:




DROP table IF EXISTS tb_member_all; create table tb_member_all( id bigint primary key auto_increment , name varchar(20), age tinyint not null default '0' )ENGINE=MERGE UNION=(tb_member1,tb_member2) INSERT_METHOD=LAST CHARSET=utf8 AUTO_INCREMENT=1 ;  
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

执行上述出现如下问题:

ERROR 1168 (HY000): Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist  
   
  • 1
  • 2

需要检查:
1:查看上面的分表数据库引擎是不是MyISAM.
2:查看分表与指标的字段定义是否一致。





上述的都成功以后,我们会发现,你在member1或者member2中创建数据member_all表中也会出现同样的数据
所以:tb_member_all表就是tb_member1,tb_member2的并集,刚刚实现到这里,我也没理解,后来看了一些文档,了解了一下:
在这里插入图片描述
其实tb_member_all表里面是没有存储数据,它就是一个外壳,里面的数据是tb_member1,tb_member2的并集,数据的存储是放在分表中;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述














在这里插入图片描述

id%2这是取模处理,分配数据进入哪个数据;

原文链接传送门: https://blog.csdn.net/joy_tom/article/details/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208423.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午11:37
下一篇 2026年3月19日 上午11:38


相关推荐

  • js push string in array

    js push string in array

    2021年9月11日
    59
  • windows下面安装Python和pip终极教程「建议收藏」

    windows下面安装Python和pip终极教程「建议收藏」在大二的时候接触过一段时间的Python,最近又开始玩起了这门语言。总的来说,个人很喜欢Python的语言风格,但是这门语言对于windows并不算很友好,因为如果是初学者在windows环境下安装,

    2022年7月5日
    23
  • java中display中的属性_全面解析display属性

    java中display中的属性_全面解析display属性大家都知道 display 可以转换元素类型 但是大多人其实对于 display 的属性值 比较熟悉的只是 block 和 inline 以及 inline block 和 none 对于其他属性值 了解都比较一般 在平时开发过程中也不太用得到其他的属性值 但是每次用这个属性的时候 脑海里都会冒出来 其他的属性值 设置了会是怎么样 有什么样的特点 这个奇奇怪怪的想法 所以找了个时间 写下这篇文章 跟我有相同可爱想法的

    2026年3月18日
    1
  • 差分进化算法之Matlab实现「建议收藏」

    差分进化算法之Matlab实现「建议收藏」一、介绍差分进化算法是模拟自然界生物种群以“优胜劣汰,适者生存”为原则的进化发展规律而形成的一种随机启发式搜索算法。其保留了基于种群的全局搜索策略,采用实数编码,基于差分的简单变异操作和一对一的竞争生存策略,比遗传算法更简单。同时,差分进化算法独特的记忆能力使其可以动态的跟踪当前的搜索情况,及时调整搜索测量,因此具有较强的全局收敛能力。目前为止,差分进化算法已经成为一种求解非线性,不可微,多极…

    2025年8月7日
    4
  • linux shell 编程书籍

    linux shell 编程书籍

    2026年3月17日
    2
  • springboot中logback配置(spring配置类)

    1、Logback简介Logback是由log4j创始人设计的又一个开源日志组件。相比于log4j,Logback重写了内核,在一些关键执行路径上性能提升10倍以上。而且logback不仅性能提升了,初始化内存加载也更小; logback当前分成三个模块:logback-core,logback-classic和logback-access。logback-core是其它两个…

    2022年4月11日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号