您的位置:首页 > 数据库 > MySQL

mysql的partition操作

2015-06-22 18:32 751 查看
Mysql 技术内幕

1. 创建partition的表

mysql> create table log_partition (
-> dt datetime not null,
-> info varchar(100) not null,
-> index ( dt)
-> )
-> partition by range(year(dt))(
-> partition p0 values less than ( 2005),
-> partition p1 values less than (2006),
-> partition p2 values less than ( 2007),
-> partition p3 values less than ( 2008),
-> partition p4 values less than maxvalue
-> );
Query OK, 0 rows affected (0.19 sec)

mysql> show create table log_partition
| log_partition | CREATE TABLE `log_partition` (
`dt` datetime NOT NULL,
`info` varchar(100) NOT NULL,
KEY `dt` (`dt`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
/*!50100 PARTITION BY RANGE (year(dt))
(PARTITION p0 VALUES LESS THAN (2005) ENGINE = InnoDB,
PARTITION p1 VALUES LESS THAN (2006) ENGINE = InnoDB,
PARTITION p2 VALUES LESS THAN (2007) ENGINE = InnoDB,
PARTITION p3 VALUES LESS THAN (2008) ENGINE = InnoDB,
PARTITION p4 VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */ |


而且每partition会占一个文件:



3,使用explain来查看一个查询是在哪个partition上执行的。



其他链接可以参见:
http://blog.csdn.net/ls3648098/article/details/9353623 http://en.oreilly.com/mysql2010/public/schedule/detail/12431 http://www.cnblogs.com/hustcat/archive/2009/12/24/1631674.html
创建partition表时,如果用了非支持函数,会出现“This partition function is not allowed”的错误提示
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: