mysql 分区表

mysql 提供分区表的功能,可以将大表进行分拆,分拆后可以极大的提升查询能力。

备注:分区表的分区也可以部署到不同的物理磁盘。

下面是一个典型的RANGE分区例子:

1、创建数据库如下:

复制代码
DROP TABLE IF EXISTS t_demo_test4;
CREATE TABLE t_demo_test4(
    tid int(20) NOT NULL AUTO_INCREMENT,
    day datetime NOT NULL,
    title varchar(50),
    content varchar(200),
    PRIMARY KEY(tid, day)    
)PARTITION BY RANGE COLUMNS (day)(
    PARTITION P_3 VALUES LESS THAN ('2015-03-01'),
    PARTITION P_6 VALUES LESS THAN ('2015-06-01'),
    PARTITION P_9 VALUES LESS THAN ('2015-09-01'),
    PARTITION P_12 VALUES LESS THAN ('2015-12-31')
);
复制代码

2、插入数据:

insert into t_demo_test4(day, title, content) 
values('2015-04-05 22:10:30','title1','content sinny write test')
,('2015-05-05 22:10:30','title1','一种内容1')
,('2015-06-06 22:10:30','title1','一种内容2')
,('2015-07-07 22:10:30','title1','一种内容3')
,('2015-08-08 22:10:30','title1','一种内容4');

3、查询数据:

SELECT * FROM t_demo_test4 WHERE day < '2015-5-30';

通过explain查看:

可以看到此时,rows = 4,改搜索并未遍历全部数据。

//-------------------------------------------------------------------------------------------------------------------------------

MYSQL还提供LIST、HASH、KEY三种分区方式,如下:

复制代码
DROP TABLE IF EXISTS t_demo_test5;
CREATE TABLE t_demo_test5(
    tid int(20) NOT NULL AUTO_INCREMENT,
    day datetime NOT NULL,
    type varchar(50),
    content varchar(200),
    PRIMARY KEY(tid,type)    
)PARTITION BY LIST COLUMNS(type)(
    PARTITION P_1 VALUES  IN ('report','note'),
    PARTITION P_2 VALUES  IN ('default')
);
复制代码
复制代码
DROP TABLE IF EXISTS t_demo_test5;
CREATE TABLE t_demo_test5(
    tid int(20) NOT NULL AUTO_INCREMENT,
    day datetime NOT NULL,
    type varchar(50),
    content varchar(200),
    PRIMARY KEY(tid)    
)PARTITION BY LINEAR HASH(tid)
PARTITIONS 4;
复制代码
复制代码
DROP TABLE IF EXISTS t_demo_test5;
CREATE TABLE t_demo_test5(
    tid int(20) NOT NULL AUTO_INCREMENT,
    day datetime NOT NULL,
    type varchar(50),
    content varchar(200),
    PRIMARY KEY(tid)    
)PARTITION BY LINEAR KEY(tid)
PARTITIONS 4;
复制代码
posted @   Fredric_2013  阅读(232)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示