MySql数据分区操作
来源:互联网 发布:手机淘宝店招750x254 编辑:程序博客网 时间:2024/05/28 05:15
如果想在已经建好的表上进行分区,如果使用alter添加分区的话,mysql会提示错误: ERROR 1505 <HY000> Partition management on a notpartitionedtable is not possible
正确的方法是新建一个具有分区的表,结构一致,然后用insert into 分区表 select * from 原始表;
测试创建分区表文件
Mysql代码
1. CREATETABLE tr (id INT, name VARCHAR(50),purchased DATE)
2. PARTITIONBY RANGE(YEAR(purchased))
3. (
4. PARTITIONp0 VALUES LESS THAN (1990),
5. PARTITIONp1 VALUES LESS THAN (1995),
6. PARTITIONp2 VALUES LESS THAN (2000),
7. PARTITIONp3 VALUES LESS THAN (2005)
8. );
插入测试数据
1. INSERTINTO tr VALUES
2. (1, 'deskorganiser', '2003-10-15'),
3. (2, 'CDplayer', '1993-11-05'),
4. (3, 'TVset', '1996-03-10'),
5. (4,'bookcase', '1982-01-10'),
6. (5,'exercise bike', '2004-05-09'),
7. (6,'sofa', '1987-06-05'),
8. (7,'popcorn maker', '2001-11-22'),
9. (8,'aquarium', '1992-08-04'),
10. (9,'study desk', '1984-09-16'),
11. (10,'lava lamp', '1998-12-25');
查询P2中的数据
1. select *from tr where purchased between'1995-01-01' and '2004-12-31';
如果删除P2,在删除P2分区的同时,也会将其下的所有数据删除
1. altertable tr drop partition p2;
2.
3. showcreate table tr;
4.
5. CREATETABLE `tr` (
6.`id`int(11) DEFAULT NULL,
7. `name`varchar(50) DEFAULT NULL,
8.`purchased` date DEFAULT NULL
9. )ENGINE=MyISAM DEFAULT CHARSET=utf8
10. /*!50100PARTITION BY RANGE(YEAR(purchased))
11.(PARTITION p0 VALUES LESS THAN (1990) ENGINE =MyISAM,
12. PARTITIONp1 VALUES LESS THAN (1995) ENGINE =MyISAM,
13. PARTITIONp3 VALUES LESS THAN (2005) ENGINE =MyISAM) */
再次插入数据时,会将原P2的数据插入至P3中
1. INSERTINTO tr VALUES (11, 'pencil holder','1995-07-12');
2.
3. ALTERTABLE tr DROP PARTITION p3;
4.
5. SELECT *FROM tr WHERE purchased BETWEEN '1995-01-01' AND '2004-12-31';
创建一个新的测试表
1. CREATETABLE members (
2. idINT,
3. fnameVARCHAR(25),
4. lnameVARCHAR(25),
5. dob DATE
6. )
7. PARTITIONBY RANGE(YEAR(dob)) (
8. PARTITIONp0 VALUES LESS THAN (1970),
9. PARTITIONp1 VALUES LESS THAN (1980),
10. PARTITIONp2 VALUES LESS THAN (1990)
11. );
直接用alter table tablename addpartition 方式再最后面添加分区
1. ALTERTABLE members ADD PARTITION (PARTITIONp3 VALUES LESS THAN (2000));
1. ALTERTABLE members reorganize partition p0into (
2. partitionm0 values less than (1960),
3. partitionm1 values less than (1970)
4. );
5.
6. showcreate table members;
7.
8. CREATETABLE `members` (
9.`id`int(11) DEFAULT NULL,
10. `fname`varchar(25) DEFAULT NULL,
11. `lname`varchar(25) DEFAULT NULL,
12. `dob`dateDEFAULT NULL
13. )ENGINE=MyISAM DEFAULT CHARSET=utf8
14. /*!50100PARTITION BY RANGE (YEAR(dob))
15.(PARTITION m0 VALUES LESS THAN (1960) ENGINE =MyISAM,
16. PARTITIONm1 VALUES LESS THAN (1970) ENGINE =MyISAM,
17. PARTITIONp1 VALUES LESS THAN (1980) ENGINE =MyISAM,
18. PARTITIONp2 VALUES LESS THAN (1990) ENGINE =MyISAM,
19. PARTITIONp3 VALUES LESS THAN (2000) ENGINE =MyISAM) */
转自:http://yuelangyc.iteye.com/blog/2006880
- MySql数据分区操作
- mysql 数据分区操作
- Mysql 分区操作简介
- Mysql 分区操作简介
- MYSQL的分区操作
- mysql 分区操作
- mysql分区基础操作
- mysql分区常用操作
- mysql分区常见操作
- mysql 数据库分区操作
- mysql分区类型及操作
- mysql分区类型及操作
- SequoiaDB的数据分区操作
- MySQL 查询指定分区数据
- mysql 数据统计 分区函数
- mysql大数据:分区功能
- MYSQL学习笔记-mysql分区基本操作
- MYSQL表分区操作错误1503解决方案
- [码海拾贝 之TC] 使用View 定义动态的Class
- SqlBulkCopy的用处
- vs2012_error C2061: 语法错误: 标识符“uint64_t”
- 使用StatSVN统计代码
- WCDMA/GSM
- MySql数据分区操作
- Android---AlarmManager(全局定时器/闹钟)指定时长或以周期形式执行某项操作
- 华为机试—多个数的最大公约数
- 完全新手教程:编译openwrt全过程
- android AsyncTask介绍
- 69卸载应用程序
- QML的Mouse事件(MouseArea)详解
- 看看飞比是如何与国际品牌PHILIPS HUE产品实现互联互通
- Git/Github的使用并与Eclipse整合