文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL创建分区方法,及分区中常用SQL示例

2023-08-31 08:58

关注

本文总结如何通过sql创建表分区,查看分区,以及日常如何使用分区表。

通过sql语句创建

mysql > CREATE TABLE `database_test`.`table_test`  (  `id` int NOT NULL AUTO_INCREMENT,  `name` varchar(50) NOT NULL,  `create_time` datetime(0) NOT NULL,  PRIMARY KEY (`id`,`create_time`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8PARTITION BY RANGE(YEAR(create_time))(    PARTITION partition1 VALUES LESS THAN (2020),    PARTITION partition2 VALUES LESS THAN (2021));

查看分区情况:

mysql> SELECT PARTITION_NAME        ,PARTITION_METHOD        ,PARTITION_EXPRESSION        ,PARTITION_DESCRIPTION        ,TABLE_ROWS        ,SUBPARTITION_NAME,SUBPARTITION_METHOD    FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA=SCHEMA() AND TABLE_NAME='your_table';

分区中常用SQL示例
1、查询指定分区内的数据:

mysql>  select * from `your_table` partition(your_partition_name);

 2、对已存在的表进行分区

mysql> ALTER TABLE `your_table` PARTITION by HASH(YEAR(`day`)) PARTITIONS 10;

删除表的所有分区

mysql>  ALTER TABLE `your_table` REMOVE PARTITIONING;


4、删除表的特定分区

mysql> ALTER TABLE `your_table` DROP PARTITION your_partition_name;


5、 删除表单个分区内的数据

mysql >  ALTER TABLE `your_table` TRUNCATE PARTITION your_partition_name;

把分区内的数据复制到另一张表

mysql> INSERT INTO `your_new_table` SELECT * FROM `your_old_table` PARTITION(your_partition_name);

新增分区

mysql> alter table `your_table` add partition(partition your_partition_name values less than(2021));


8、原表已有主键,需要新增复合主键,则需要先丢弃再重新设置主键。

mysql> ALTER TABLE `your_database`.`your_table` DROP PRIMARY KEY,ADD PRIMARY KEY (`id`, `login_time`) USING BTREE;

查询分区信息。

mysql> SELECT PARTITION_NAME,PARTITION_METHOD,PARTITION_EXPRESSION,PARTITION_DESCRIPTION,TABLE_ROWS,SUBPARTITION_NAME,SUBPARTITION_METHODFROM information_schema.PARTITIONS WHERE TABLE_SCHEMA=SCHEMA() AND TABLE_NAME='your_table';

原表设置了MAXVALUE分区,若想添加新分区又不丢失数据,则需要重新分区。

Alter table `your_table` partition by RANGE(YEAR(login_time))(partition p1 values less than (2014),partition p2 values less than (2015),partition p3 values less than (2016),partition p4 values less than (2019),partition p5 values less than (MAXVALUE));

来源地址:https://blog.csdn.net/qiuweifan/article/details/131268321

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯