MYSQL的Partition Table相关细节整理
MYSQL官方文档链接: Chapter 23 Partitioning
注:本次参考的是8.0版本说明文档,文章属个人理解,如有错误还望指正
简介
MYSQL是一开源的轻量级关系型数据库管理系统,将数据保存在不同的表中,增加了速度提高了灵活性,最近阅读了MYSQL8.0的文档,把自己对于MYSQL的partition的理解写下来。
为什么需要用partition
partition能够使我们能够根据自己设定的规则来让各个表的各个部分分布在整个文件系统中。partition列的值被传到partition函数后会返回一个整数值,这个值代表了存储的分区的编号(要求此值必须不能是常数或者随机函数)。现在的partition一般称为水平分区,即可以把表的不同行分配给不同的物理分区(8.0版本不支持垂直,即列分配)。
在创建分区表的时候,如果想要修改存储引擎,需要用[STORAGE]引擎项,而且这个选项需要在CREATE TABLE的分区语句之前就指明引擎。
CREATE TABLE ti (id INT, amount DECIMAL(7,2), tr_date DATE)
ENGINE=INNODB
PARTITION BY HASH(