面试官MySQL分表后,如何做分页查询?
随着项目运行的时间越来越长,有些数据的存储也会越来越大,比如一些点击量,浏览量量,单表的数据可以到达上千万条数据,这时候会存在单表数据过大,查询效率低的问题。
为了提高查询效率这时候需要对单表进行拆分,比如一张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 ;
表二: 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 ;
接下来开始进行拆分: 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;
数据被分为:
这时候表基本是已经拆分完成。
接下来,我们需要考虑的是一张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 ;
执行上述出现如下问题: ERROR 1168 (HY000): Unable to open underlying table which is differently defined or of non-MyISAM type or doesn"t exist
需要检查: 查看上面的分表数据库引擎是不是MyISAM. 查看分表与指标的字段定义是否一致。
上述的都成功以后,我们会发现,你在member1或者member2中创建数据member_all表中也会出现同样的数据
所以:tb_member_all表就是tb_member1,tb_member2的并集,刚刚实现到这里,我也没理解,后来看了一些文档,了解了一下:
其实tb_member_all表里面是没有存储数据,它就是一个外壳,里面的数据是tb_member1,tb_member2的并集,数据的存储是放在分表中;
这时候,我们就豁然开朗了,利用这个tb_member_all,我们就可以实现数据查询的分页;
java代码实现:
id%2这是取模处理,分配数据进入哪个数据;
我们在做分页的时候就利用tb_member_all表去做分页查询实现
测试结果:
原文链接:blog.csdn.net/joy_tom/article/details/109857573
商城县美丽小镇获全省通报表扬河南日报农村版信阳讯(记者尹小剑李振阳通讯员罗玉兰)新春佳节临近,商城县美丽小镇鄢岗镇也是喜事不断,到处洋溢着喜悦的气氛。日前,该镇因生态文明建设工作突出受到了河南省生态环境厅通报
年味儿里的聊城实拍古城夜市人山人海热闹非凡,久违的烟火气又回来了大众网海报新闻记者侯晓聊城报道春节临近,聊城年味渐浓。每当夜幕降临,聊城古城内开始人潮涌动。时值寒冬,气温低至零下,但丝毫没有影响聊城市民出游的兴致。以光岳楼为中心,四条主干道上人
不懂就不要供奉它坛城最近,发现去过西藏旅游的人,会买一些纪念品放在家里。有人买天珠,有人买唐卡,还有部分人去供奉坛城。我就纳闷了,它又不是工艺品,又不是追潮流。如果不了解它,最好就不要供奉它。坛城又叫
逼爆大三巴澳门与香港于1月8日免检疫通关,上周六就录得过万港人入境澳门,整体入境人数更达55,000人,上周末各个旅游景点都人头涌涌,特别是大三巴及手信街都逼得水泄不通,大三巴逼满了打卡的市
外媒古代玛雅人定居点发现超级公路据路透社1月16日报道,最新高科技研究发现了近1000个古代玛雅人定居点,其中包括417个以前不为人知的城市。而连接这些城市的可能是世界上第一个公路网,它在危地马拉北部与墨西哥南部
微软将因收购动视暴雪收到欧盟反垄断警告据路透社报道,欧盟将发布一份名为反对声明的指控书,阐述其对微软收购动视暴雪这桩交易的担忧,这将是微软完成交易之路上的最新挫折。据称,微软将向欧盟监管机构提供修正措施,以避免指控声明
国家未来会不会是这样一种发展模式?有没有一种可能是国家在开启另外一个发展模式呢?房地产发展带来城镇化,加入世贸带来的加速工业化和国际化,在2012年后,在房住不炒供给侧改革以及国际形势变差的情况下,原来出口和投资为
活力四射的太阳耀斑,对地球影响几何?新华社上海1月17日电(记者张建松)记者从中国科学院上海天文台获悉,日前据天文学家观测,2023年伊始,太阳在六天内(1月5日至11日)连续爆发了三次最大级别(X级)的耀斑。作为太
对普通投资者来说比特币没有春天仅是韭菜地而已比特币春天来了?终于迈过2万美元大关为两个多月来首次!今年伊始,全球市值最大的加密货币比特币不仅迎来了九连涨,本周六(1月14日)早些时候还一度突破21000美元枚大关,日内涨约1
独领风骚画质天花板TCLX11同时成为获奖天花板近两年电视行业的竞争不可谓不激烈,各家都在不断推陈出新,期望用更高品质的产品抢占更多市场份额,其中不乏很多表现亮眼的产品。但在所有新品中,被誉为画质天花板的TCLX11可谓独领风骚
黄山风景区春节期间这样停车大皖新闻讯每年春节黄金周期间,黄山风景区的自驾车很多,找停车位是难题。日前,黄山风景区管委会发布公告,将黄山风景区主入口南大门的汤口地区停车场分布收费管理以及其他注意事项公布,方便