当前位置:   article > 正文

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

mysql 创建分区

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

通过sql语句创建

  1. mysql > CREATE TABLE `database_test`.`table_test`  (
  2.   `id` int NOT NULL AUTO_INCREMENT,
  3.   `name` varchar(50) NOT NULL,
  4.   `create_time` datetime(0) NOT NULL,
  5.   PRIMARY KEY (`id`,`create_time`)
  6. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
  7. PARTITION BY RANGE(YEAR(create_time))(
  8.     PARTITION partition1 VALUES LESS THAN (2020),
  9.     PARTITION partition2 VALUES LESS THAN (2021)
  10. );

查看分区情况:

  1. mysql> SELECT PARTITION_NAME
  2. ,PARTITION_METHOD
  3. ,PARTITION_EXPRESSION
  4. ,PARTITION_DESCRIPTION
  5. ,TABLE_ROWS
  6. ,SUBPARTITION_NAME,SUBPARTITION_METHOD
  7. FROM information_schema.PARTITIONS
  8. 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;

3、 删除表的所有分区

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;

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

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

7、新增分区

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


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

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

9、查询分区信息。

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

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

  1. Alter table `your_table` partition by RANGE(YEAR(login_time))(
  2. partition p1 values less than (2014),
  3. partition p2 values less than (2015),
  4. partition p3 values less than (2016),
  5. partition p4 values less than (2019),
  6. partition p5 values less than (MAXVALUE)
  7. );

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/961044
推荐阅读
相关标签
  

闽ICP备14008679号