mysql分区表RANGE

本文深入探讨了MySQL中的分区表技术,重点关注RANGE分区策略。通过RANGE分区,可以有效地管理和优化大型数据库,提高查询性能。内容涵盖了RANGE分区的基础概念、使用场景、优点及具体实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.新建普通表
CREATE TABLE human (age int, sex int);
2.插入数据
INSERT INTO human VALUES (5,1), (15, 0), (24, 1), (44, 1), (32, 0), (64, 1), (84, 1), (54, 0);
3.建立RANGE分区表
CREATE TABLE human_fq (age int, sex int)
       PARTITION BY RANGE (age) (
       PARTITION p0 VALUES LESS THAN (20),
       PARTITION p1 VALUES LESS THAN (40),
       PARTITION p2 VALUES LESS THAN (60),
       PARTITION p3 VALUES LESS THAN (80),
       PARTITION p4 VALUES LESS THAN MAXVALUE
       );  
4.插入数据至分区表
INSERT INTO human_fq SELECT * FROM human ;
5.查看分区表情况
SELECT table_name,partition_name,partition_description,table_rows FROM
information_schema.`PARTITIONS` WHERE table_name = 'human_fq';

在这里插入图片描述

6.查看分区查询数据实际使用情况
EXPLAIN  partitions   SELECT * FROM human_fq WHERE age= 20;

在这里插入图片描述

7.删除分区
alter table human_fq drop partition p0;

alter table human_fq drop partition p1,p2;
 -- 删除分区会直接删除数据,请谨慎。
 因为该类型是范围分区,如果要删除可从最大往最小删,且不能删除全部分区。
 
8.重置分区

alter table human_fq reorganize partition p0 into (partition p0 values less than (10),partition p1 values less than(20));
-- 如原分区p0 范围0-20 则重置的总范围也必须是该范围,分区数则不限


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值