当前位置:网站首页>MySQL table partitioning
MySQL table partitioning
2022-06-13 07:38:00 【_ seven seven】
Table Partitioning Table partitioning
Refer to official documents :
https://dev.mysql.com/doc/refman/8.0/en/create-table.html
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
[(create_definition,...)]
[table_options]
[partition_options]
[IGNORE | REPLACE]
[AS] query_expression
partition_options:
PARTITION BY
{ [LINEAR] HASH(expr)
| [LINEAR] KEY [ALGORITHM={
1 | 2}] (column_list)
| RANGE{
(expr) | COLUMNS(column_list)}
| LIST{
(expr) | COLUMNS(column_list)} }
[PARTITIONS num]
[SUBPARTITION BY
{ [LINEAR] HASH(expr)
| [LINEAR] KEY [ALGORITHM={
1 | 2}] (column_list) }
[SUBPARTITIONS num]
]
[(partition_definition [, partition_definition] ...)]
partition_definition:
PARTITION partition_name
[VALUES
{LESS THAN {
(expr | value_list) | MAXVALUE}
|
IN (value_list)}]
[[STORAGE] ENGINE [=] engine_name]
[COMMENT [=] 'string' ]
[DATA DIRECTORY [=] 'data_dir']
[INDEX DIRECTORY [=] 'index_dir']
[MAX_ROWS [=] max_number_of_rows]
[MIN_ROWS [=] min_number_of_rows]
[TABLESPACE [=] tablespace_name]
[(subpartition_definition [, subpartition_definition] ...)]
subpartition_definition:
SUBPARTITION logical_name
[[STORAGE] ENGINE [=] engine_name]
[COMMENT [=] 'string' ]
[DATA DIRECTORY [=] 'data_dir']
[INDEX DIRECTORY [=] 'index_dir']
[MAX_ROWS [=] max_number_of_rows]
[MIN_ROWS [=] min_number_of_rows]
[TABLESPACE [=] tablespace_name]
query_expression:
SELECT ... (Some valid select or union statement)

PARTITION BY

- HASH(expr)

CREATE TABLE t1 (col1 INT, col2 CHAR(5))
PARTITION BY HASH(col1);
CREATE TABLE t1 (col1 INT, col2 CHAR(5), col3 DATETIME)
PARTITION BY HASH ( YEAR(col3) );
- KEY(column_list)

CREATE TABLE tk (col1 INT, col2 CHAR(5), col3 DATE)
PARTITION BY KEY(col3)
PARTITIONS 4;

CREATE TABLE tk (col1 INT, col2 CHAR(5), col3 DATE)
PARTITION BY LINEAR KEY(col3)
PARTITIONS 5;
- RANGE(expr)


CREATE TABLE t1 (
year_col INT,
some_data INT
)
PARTITION BY RANGE (year_col) (
PARTITION p0 VALUES LESS THAN (1991),
PARTITION p1 VALUES LESS THAN (1995),
PARTITION p2 VALUES LESS THAN (1999),
PARTITION p3 VALUES LESS THAN (2002),
PARTITION p4 VALUES LESS THAN (2006),
PARTITION p5 VALUES LESS THAN MAXVALUE
);


- RANGE COLUMNS(column_list)


CREATE TABLE rc (
a INT NOT NULL,
b INT NOT NULL
)
PARTITION BY RANGE COLUMNS(a,b) (
PARTITION p0 VALUES LESS THAN (10,5),
PARTITION p1 VALUES LESS THAN (20,10),
PARTITION p2 VALUES LESS THAN (50,MAXVALUE),
PARTITION p3 VALUES LESS THAN (65,MAXVALUE),
PARTITION p4 VALUES LESS THAN (MAXVALUE,MAXVALUE)
);
partition_definition
- PARTITION partition_name
- VALUES
- [STORAGE] ENGINE
- COMMENT
- DATA DIRECTORY and INDEX DIRECTORY
CREATE TABLE th (id INT, name VARCHAR(30), adate DATE)
PARTITION BY LIST(YEAR(adate))
(
PARTITION p1999 VALUES IN (1995, 1999, 2003)
DATA DIRECTORY = '/var/appdata/95/data'
INDEX DIRECTORY = '/var/appdata/95/idx',
PARTITION p2000 VALUES IN (1996, 2000, 2004)
DATA DIRECTORY = '/var/appdata/96/data'
INDEX DIRECTORY = '/var/appdata/96/idx',
PARTITION p2001 VALUES IN (1997, 2001, 2005)
DATA DIRECTORY = '/var/appdata/97/data'
INDEX DIRECTORY = '/var/appdata/97/idx',
PARTITION p2002 VALUES IN (1998, 2002, 2006)
DATA DIRECTORY = '/var/appdata/98/data'
INDEX DIRECTORY = '/var/appdata/98/idx'
);
example
Create table tmp_lyh_20211116(
`channel` bigint comment ' channel ',
`number` bigint comment ' Channel number '
PARTITIONED BY (
`month_no` int,
`date_no` int
)
ALTER TABLE tmp_lyh_20211116 IF EXISTS PARTITION (month_no=202111, date_no=20211116);
alter table tmp_lyh_20211116 add if not exists partition (month_no=202111,date_no=20211116);
insert into table tmp_lyh_20211116 partition (month_no=202111,date_no=20211116)
select ... ;
边栏推荐
- Redis learning journey master-slave replication
- P6154 游走(记忆化搜索
- B. I Hate 1111 (记忆化搜索 数论
- Upgrade the project of log4j to log4j2
- redis-3. Redis list, set, hash, sorted_ set、skiplist
- 全志V3S环境编译开发流程
- [log4j2 log framework] sensitive character filtering
- Consistency under distributed
- powerdisgner逆向生成oracle数据模型
- About database: pgadmin4 editing SQL window
猜你喜欢

24 | 冒险和预测(三):CPU里的“线程池”

Redis Cluster - the underlying principle of slot assignment

Tidb source code series: immersive compilation of tidb

25 | 冒险和预测(四):今天下雨了,明天还会下雨么?

redis-0. Introduction to redis and NiO principle (random talk)

20 | 面向流水线的指令设计(上):一心多用的现代CPU

GCC compilation process, function library related compilation process

Redis Cluster - the underlying principle of cluster execution commands

【深度学习】:《PyTorch入门到项目实战》(十二)卷积神经网络:填充(padding)和步幅(stride)

Redis master-slave replication - the underlying principle of partial resynchronization
随机推荐
QT reading SQLSERVER database
关于#数据库#的问题:PGADMIN4 编辑sql窗口问题
量化框架backtrader之一文读懂Analyzer分析器
2021-10-20
redis-1. Install redis with pictures and texts
关于oracle的函数。
26 | Superscalar和VLIW:如何让CPU的吞吐率超过1
Redis learning journey sentinel mode
Redis Cluster - the underlying principle of slot assignment
Upgrade the project of log4j to log4j2
Oracle problem: the data in the field is separated by commas. Take the data on both sides of the comma
About database: pgadmin4 editing SQL window
9. process control
socket编程2:IO复用(select && poll && epoll)
Classification of databases
[Yu Yue education] econometrics reference materials of Jiujiang University
理财产品连续几天收益都是零是怎么回事?
Data desensitization tool advance tool Datamask
[tools for quickly creating MySQL stand-alone and cluster test environments] dbdeployer
Redis underlying data structure ----quicklist