MySQL分区表例子——List分区
这里假设表中有一个sale_item_type 字段,数据类型为INT 型
当sale_item_type 为1,3,5的时候,作为一个分区
当sale_item_type 为2,4,6的时候,作为另一个分区
当sale_item_type 为7,8的时候,作为最后一个分区
mysql> CREATE TABLE sale_data2 (
-> sale_date DATETIME NOT NULL,
-> sale_item_type INT NOT NULL ,
-> sale_money DECIMAL(10,2) NOT NULL
-> )
-> PARTITION BY LIST (sale_item_type) (
-> PARTITION pFoods VALUES IN (1,3,5),
-> PARTITION pSmoke VALUES IN (2,4,6),
-> PARTITION pDrink VALUES IN (7,8)
-> );
Query OK, 0 rows affected (0.11 sec)
核对结果
mysql> SHOW CREATE TABLE sale_data2\G
*************************** 1. row ********************
Table: sale_data2
Create Table: CREATE TABLE `sale_data2` (
`sale_date` datetime NOT NULL,
`sale_item_type` int(11) NOT NULL,
`sale_money` decimal(10,2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
/*!50100 PARTITION BY LIST (sale_item_type)
(PARTITION pFoods VALUES IN (1,3,5) ENGINE = InnoDB,
PARTITION pSmoke VALUES IN (2,4,6) ENGINE = InnoDB,
PARTITION pDrink VALUES IN (7,8) ENGINE = InnoDB) */
1 row in set (0.00 sec)
mysql> ALTER TABLE sale_data2
-> ADD PARTITION (PARTITION pOther VALUES IN (9, 10));
Query OK, 0 rows affected (0.23 sec)
Records: 0 Duplicates: 0 Warnings: 0
核对结果
mysql> SHOW CREATE TABLE sale_data2\G
*************************** 1. row ***************************
Table: sale_data2
Create Table: CREATE TABLE `sale_data2` (
`sale_date` datetime NOT NULL,
`sale_item_type` int(11) NOT NULL,
`sale_money` decimal(10,2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
/*!50100 PARTITION BY LIST (sale_item_type)
(PARTITION pFoods VALUES IN (1,3,5) ENGINE = InnoDB,
PARTITION pSmoke VALUES IN (2,4,6) ENGINE = InnoDB,
PARTITION pDrink VALUES IN (7,8) ENGINE = InnoDB,
PARTITION pOther VALUES IN (9,10) ENGINE = InnoDB) */
1 row in set (0.00 sec)
mysql> ALTER TABLE sale_data2
-> DROP PARTITION pOther;
Query OK, 0 rows affected (0.34 sec)
Records: 0 Duplicates: 0 Warnings: 0
核对结果
mysql> SHOW CREATE TABLE sale_data2\G
*************************** 1. row ***************************
Table: sale_data2
Create Table: CREATE TABLE `sale_data2` (
`sale_date` datetime NOT NULL,
`sale_item_type` int(11) NOT NULL,
`sale_money` decimal(10,2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
/*!50100 PARTITION BY LIST (sale_item_type)
(PARTITION pFoods VALUES IN (1,3,5) ENGINE = InnoDB,
PARTITION pSmoke VALUES IN (2,4,6) ENGINE = InnoDB,
PARTITION pDrink VALUES IN (7,8) ENGINE = InnoDB) */
1 row in set (0.00 sec)
下面的SQL将pDrink 拆分为pBeer 与pCola
mysql> ALTER TABLE sale_data2 REORGANIZE PARTITION pDrink INTO (
-> PARTITION pBeer VALUES IN (7),
-> PARTITION pCola VALUES IN (8)
-> );
Query OK, 0 rows affected (0.39 sec)
Records: 0 Duplicates: 0 Warnings: 0
核对结果
mysql> SHOW CREATE TABLE sale_data2\G
*************************** 1. row ***************************
Table: sale_data2
Create Table: CREATE TABLE `sale_data2` (
`sale_date` datetime NOT NULL,
`sale_item_type` int(11) NOT NULL,
`sale_money` decimal(10,2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
/*!50100 PARTITION BY LIST (sale_item_type)
(PARTITION pFoods VALUES IN (1,3,5) ENGINE = InnoDB,
PARTITION pSmoke VALUES IN (2,4,6) ENGINE = InnoDB,
PARTITION pBeer VALUES IN (7) ENGINE = InnoDB,
PARTITION pCola VALUES IN (8) ENGINE = InnoDB) */
1 row in set (0.00 sec)
下面的SQL,将pBeer,pCola合并到pDrink
mysql> ALTER TABLE sale_data2
-> REORGANIZE PARTITION pBeer,pCola INTO (
-> PARTITION pDrink VALUES IN (7,8)
-> );
Query OK, 0 rows affected (0.36 sec)
Records: 0 Duplicates: 0 Warnings: 0
核对结果
mysql> SHOW CREATE TABLE sale_data2\G
*************************** 1. row ***********************
Table: sale_data2
Create Table: CREATE TABLE `sale_data2` (
`sale_date` datetime NOT NULL,
`sale_item_type` int(11) NOT NULL,
`sale_money` decimal(10,2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
/*!50100 PARTITION BY LIST (sale_item_type)
(PARTITION pFoods VALUES IN (1,3,5) ENGINE = InnoDB,
PARTITION pSmoke VALUES IN (2,4,6) ENGINE = InnoDB,
PARTITION pDrink VALUES IN (7,8) ENGINE = InnoDB) */
1 row in set (0.00 sec)
MySQL分区表例子——List分区的更多相关文章
- mysql分区表之一:分区原理和优缺点【转】
1.分区表的原理 分区表是由多个相关的底层表实现,这些底层表也是由句柄对象表示,所以我们也可以直接访问各个分区,存储引擎管理分区的各个底层表和管理普通表一样(所有的底层表都必须使用相同的存储引擎),分 ...
- MySQL 分区表,为什么分区键必须是主键的一部分?
随着业务的不断发展,数据库中的数据会越来越多,相应地,单表的数据量也会越到越大,大到一个临界值,单表的查询性能就会下降. 这个临界值,并不能一概而论,它与硬件能力.具体业务有关. 虽然在很多 MySQ ...
- Mysql --分区表(7)Key分区
Key分区 按照Key进行分区非常类似于按照Hash进行分区,只不过Hash分区允许使用用户自定义的表达式,而Key分区不允许使用用户自定义的表达式,需要使用MySQL服务器提供的HASH函数;同时H ...
- Mysql --分区表(6)Hash分区
HASH分区 HASH分区主要用来分散热点读,确保数据在预先确定个数的分区中尽可能平均分布.对一个表执行HASH分区时,MySQL会对分区键应用一个散列函数,以此确定数据应当放在N个分区中的哪个分区 ...
- Mysql --分区表(5)Columns分区
COLUMNS分区 COLUMNS分区是RANGE和LIST分区的变种.COLUMNS分区支持多列作为分区键进行分区 RANGE COLUNMS分区和LIST COLUMNS都支持非INT型列作为分区 ...
- mysql分区表之二:MySQL的表的四种分区类型介绍
一.什么是表分区 通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了.如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区 ...
- MySQL 分区表
转载自MySQL 分区表 今天统计数据的时候发现一张表使用了表分区,借此机会记录一下. 1. 什么是表分区? 表分区,是指根据一定规则,将数据库中的一张表分解成多个更小的,容易管理的部分.从逻辑上看, ...
- Mysql分表和分区的区别、分库分表介绍与区别
分表和分区的区别: 一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看:mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这 ...
- MySQL分区表
当数据库数据量涨到一定数量时,性能就成为我们不能不关注的问题,如何优化呢? 常用的方式不外乎那么几种: 1.分表,即把一个很大的表达数据分到几个表中,这样每个表数据都不多. 优点:提高并发量,减小锁的 ...
随机推荐
- [BILL WEI]一些经常用到的SQL函数
截取时间 --convert可以截取特点值 convert(varchar(10),getdate(),120) 截取2012-11-11 11:11:11 前10位,得到日期2012-11-11
- table显示json数据传递
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- mmap的使用
http://blog.csdn.net/adcxf/archive/2009/03/14/3989725.aspx 共 享内存可以说是最有用的进程间通信方式,也是最快的IPC形式.两个不同进程A.B ...
- POJ-3468 A Simple Problem with Integers Splay Tree区间练习
题目链接:http://poj.org/problem?id=3468 以前用线段树做过,现在用Splay Tree A了,向HH.kuangbin.cxlove大牛学习了各种Splay各种操作,,, ...
- windows下利用dll生成lib
原来工程编译的一些dll库,这次项目需要静态库,偷懒想直接转化.看到网上一些教程,使用VC工具和建立lib项目来实现.有点麻烦.还有一种方法,仅仅利用工具和几条命令转化.来试试看.文章参考harrie ...
- MSSQL数字时间(timestamp)转换为DATETIME
很简单: , CAST('1970-01-01 00:00:00' AS datetime))
- javascript中使用md5函数
javascript中使用md5函数 这对于js来讲本来是没有的,现在可以自己定义一个md5的函数,达到加密效果. var hexcase = 0; function hex_md5(a) { if ...
- java.lang.UnsupportedClassVersionError: Unsupported major.minor version 52.0的错误
1.首先检查是不是jdk版本过低,如果过低的话就把jdk重新安装一下 2.在编译器的版本中设置一下,compiler中设置成与jdk版本相同
- chrmoe debug
一.右击,点击审查元素 二.打开后,每个tab是干什么用的呢? 三.调试样式 选中Elemes后,右边有个窗口,这里是CSS的样式,可以直接选中元素,并且在这里修改样式.这样调试很方便,效率也很高.当 ...
- Java实现文件的RSA和DES加密算法
根据密钥类型不同将现代密码技术分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密) 对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密 ...