米兰体育官方网站-文班评历史最佳5人组:库里、乔丹、詹姆斯、邓肯、奥尼尔

admin 2025-07-22 阅读:30 评论:0
  导读   之前分享过,表分区数量特别大,当有大事务时,可能会导致主从延迟特别严重。  那么如何减少表分区数量呢?  之前叶师傅分享的 意想不到的MySQL复制延迟原因一文中提到,规避问题的方法有:删除不用的历史表分区;将大表拆分;将大...

  导读

文班评历史最佳5人组:库里、乔丹、詹姆斯、邓肯、奥尼尔

  之前分享过,表分区数量特别大,当有大事务时,可能会导致主从延迟特别严重。

  那么如何减少表分区数量呢?

  之前叶师傅分享的 意想不到的MySQL复制延迟原因一文中提到,规避问题的方法有:

删除不用的历史表分区;

将大表拆分;

将大事务拆分,不要在一个事务里做大批量更新;

文班评历史最佳5人组:库里、乔丹、詹姆斯、邓肯、奥尼尔

  针对第一条方法,今天我们来讲讲怎么做表分区的合并,也就是把历史表分区合并到一起。

  首先,检查下哪些表的分区数量最大,优先对它们下手:

  yejr@imysql.com[information_schema]> SELECT TABLE_NAME, COUNT(*) AS CNT FROM PARTITIONS WHERE PARTITION_NAME IS NOT NULL GROUP BY TABLE_NAME ORDER BY CNT DESC LIMIT 50;+------------+-----+| TABLE_NAME | CNT |+------------+-----+| t1 | 600 |...+------------+-----+

  可以看到表 t1 的分区共有 600 个之多。

  再来看看这个表的分区情况:

  

  再看看这个表各个分区的数据量分布:

  

  每天就要生成700-800万行数据,这个量是够大的了。

  现在,我们把2016年的所有分区,按照每月一个分区(之前是每天一个分区),合并在一起。

  yejr@imysql.com[mydb]> ALTER TABLE t1 REORGANIZE PARTITION p20160101,p20160102...p20160131 into ( partition p201601 VALUES LESS THAN ('2016-01-31'));

  Query OK, 0 rows affected (9 hours 56 min 55.33 sec)Records: 0 Duplicates: 0 Warnings: 0

  苍天啊,竟然要跑9个多小时,好可怕。

  合并完分区后,还记得要执行 ANALYZE TABLE 哟,及时更新统计信息。在有大量表分区的情况下,执行 ANALYZE TABLE 可能会略慢,要有耐心,在另一篇分享 细说ANALYZE TABLE文中也介绍过了。

  我们可以用下面方法构造批量执行表分区合并的SQL指令:

  yejr@imysql.com[information_schema]> SELECT TABLE_NAME, CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.' ,TABLE_NAME, ' REORGANIZE PARTITION ', GROUP_CONCAT(PARTITION_NAME), ' INTO (PARTITION P2017 VALUES LESS THAN (''2018-01-01''));') FROM PARTITIONS WHERE PARTITION_NAME IS NOT NULL GROUP BY TABLE_SCHEMA, TABLE_NAME;

  SQL中的条件请自行替换。

  当然,除了合并分区,我们还可以利用MySQL 5.7支持 分区 & 物理表 直接交换 的新特性,将历史分区交换到外部物理表,再归档到历史库里。这个方案对在线数据库影响很小,叶师傅优先推荐此法。

  yejr@imysql.com[mydb]> ALTER TABLE t1 EXCHANGE PARTITION p20160101 WITH TABLE t1_20160101;

  备注:一个分区只能交换到一个外部物理表中,不能将多个分区交换到同一个表。

  最后,如果哪天boss抽风要求把原来的分区打散,重新变成每天一个分区,咋整呢?

  其实也不难啊,让叶师傅手把手地教你

  yejr@imysql.com[mydb]> ALTER TABLE t1 REORGANIZE PARTITION p201707 INTO (partition p20170701 VALUES LESS THAN ('2017-07-02’) , partition p20170702 VALUES LESS THAN ('2017-07-03’) ,... partition p20170731 VALUES LESS THAN ('2017-08-01’));

  最后祝大家的表分区越来越多,嘿,别打我,快溜~

知识无界限,不再加原创

喜欢就转走,铁粉加密圈

https://yejinrong.com

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

分享:

扫一扫在手机阅读、分享本文

发表评论
热门文章
  • 米兰体育官网-里尔斩获困难胜利,法甲冠军宝座摇摇欲坠的简单介绍

    米兰体育官网-里尔斩获困难胜利,法甲冠军宝座摇摇欲坠的简单介绍
    有像内马尔卡瓦尼和姆巴佩这样的顶级前锋可供调遣,这确保了图赫尔的球队能够把进球当作家常便饭,在他执教巴黎期间,球队一共斩获了337个进球图赫尔带领大巴黎夺得了6座奖杯,其中包括两座法甲冠军,1座法国杯1座法国联赛杯和两座法国超级杯除了国内赛事之外,图赫尔带领巴黎征战欧洲赛场也取得了不错的成绩。...
  • 米兰体育官方网站-澳大利亚足球队夺得冠军头衔

    米兰体育官方网站-澳大利亚足球队夺得冠军头衔
    1日本球队 日本足球协会始建于1921年,1929年加入国际足联20世纪90年代以来,日本足球水平突飞猛进日本队先后在1992年日本亚洲杯2000年黎巴嫩亚洲杯2004年中国亚洲杯和2011年卡塔尔亚洲杯4次获得冠军2伊朗球队 伊朗国家男子足球队成立于1920年,1948年加入国际足联,由伊朗足球协会管理伊朗是;第三级联赛包括各州的超级联赛,以及更多级别这些联赛提供了更多的机会给较小的俱乐部和球员,形成了一个完整的联赛体系,确保了澳大利亚足球的广泛参与和发展澳大利亚足球联赛的...
  • 米兰体育登录-陕西队努力实现突破,提升整体实力

    米兰体育登录-陕西队努力实现突破,提升整体实力
    懂球大会 经历了前两轮激烈较量,陕西长安竞技和新疆天山雪豹都取得了一胜一负的战绩,本轮两支球队将正面交锋相比于上场比赛的对手,本轮陕西长安竞技是更具实力的那支球队,但新疆经历了上场比赛逆转取胜,全队士气高涨期待陕西队摆脱困境,取得理想的成绩陕西长安竞技梦幻般的半场球 中甲第一阶段。 陕西新华出版传媒集团是由陕西出版集团和新华书店合并而成的一个大型出版机构它整合了原有的出版资源,旨在提升陕西出版产业的整体实力集团的高层管理者级别为厅级,显示了其在地方文化事业中的重要地位该集团涵...
  • 米兰体育官方网站-瑞士足球队豪取三分晋级欧洲杯预选赛的简单介绍

    米兰体育官方网站-瑞士足球队豪取三分晋级欧洲杯预选赛的简单介绍
    1、D组英格兰国家队7分,克罗地亚国家队4分,捷克国家队4分,苏格兰国家队1分E组瑞典国家队7分,西班牙国家队5分,斯洛伐克国家队3分,波兰国家队1分F组法国国家队5分,德国国家队4分,葡萄牙国家队4分,匈牙利国家队2分欧洲杯简介欧洲足球锦标赛UEFA European Football Championship;出线情况分析瑞士领先罗马尼亚2分,锁定出线名额以色列和罗马尼亚可能会为争夺小组第二努力J组 目前积分情况葡萄牙12分斯洛伐克10分卢森堡7分波黑3分冰岛3分列支敦士...
  • 米兰体育官网-绿城客场输给国安,保级形势堪忧的简单介绍

    米兰体育官网-绿城客场输给国安,保级形势堪忧的简单介绍
    1、对于内定的说法,足协人士说“根本不存在什么内定,山东赢不下重庆,河南客场输成都,长春也能在客场输给深圳,他们犯了错误,给了国安机会,这能是内定吗再说,如果真内定,国安不用等16年吧”参考资料20091101content_2htm 遗憾的告别了中超赛场。 2、唯一对于河南有利的是最后一战的对手深圳本轮获胜,比本轮失利的杭州保级形势更好,最后一战对河南时的斗志肯定不如同北京国安交手时顽强保级的杭州绿城,但即使如此,想多赢出6个球或者是国安马失前蹄主场失利的可能性也都非常小北...