mysql分区表-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 276186
  • 博文数量: 90
  • 博客积分: 41
  • 博客等级: 民兵
  • 技术积分: 400
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-07 11:52
文章分类
文章存档

2014年(11)

2013年(3)

2012年(69)

2011年(7)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: mysql/postgresql

2014-05-29 18:05:21

原文地址: 作者:

查看分区情况


点击(此处)折叠或打开

  1. select * from information_schema.partitions where table_name='table_name'

partition_name:分区的名称

partition_method:分区的类型

table_rows:分区数据条数


range分区:

点击(此处)折叠或打开

  1. create table t (
  2. id int) engine=innodb
  3. partition by range (id) (
  4. partition p0 values less than (10), --id小于10的加入p0分区
  5. partition p1 values less than (20));--id大于等于10小于20的加入p1分区

增加分区

点击(此处)折叠或打开

  1. alter table r add partition (partition p2 values less than maxvalue); --所有大于等于20的加入p2分区


点击(此处)折叠或打开

  1. create table `w` (
  2.   `money` int(10) unsigned not null,
  3.   `date` datetime default null
  4. ) engine=innodb default charset=utf8
  5.  partition by range (year(date)) --定义的规则也可以是函数
  6. (partition p2010 values less than (2010),
  7.  partition p2001 values less than (2011),
  8.  partition p2012 values less than (2012));

  删除分区

 


点击(此处)折叠或打开

  1. alter table w drop partition p2010;

--删除分区,则分区的数据也删除

----------------------------------------------------------------------


 list分区

点击(此处)折叠或打开

  1. create table m (
  2. a int,
  3. b int)engine=innnodb
  4. partition by list (b)(
  5. partition p0 values in (1,2,3,4,5),
  6. partition p1 values in (6,7,8,9,10));

  7. insert into m values (1,6),(2,7),(3,11),(4,9)

--插入的值(3,11)不符合,如果是innodb引擎,后面(4,9)符合条件不会插入表中,

   如果是myisam引擎,后面(4,9)符合条件则会插入表中

   

----------------------------------------------------------------------

  

hash分区

点击(此处)折叠或打开

  1. create table m_hash (
  2. a int,
  3. b datetime)engine=innnodb
  4. partition by hash (year(b)) --"partition by hash (expr)" expr是一个返回整数的表达式
  5. partitions 4; --表示要被分割成分区的数量,没有则默认是1

 如:加入分区的算法mod(expr,分区数量4)=0 则加入p0

点击(此处)折叠或打开

  1. partition by linear hash (year(b))

--与hash只是算法不同,返回是值是一样的

----------------------------------------------------------------------


columns分区 

mysql5.5开始支持,视为range分区和list分区的一种进化,支持int,smallint,tinyint,bigint.date,datetime.char,varchar,binary,varbinary类型

点击(此处)折叠或打开

  1. create table t_columns_range(
  2. a int,
  3. b datetime) engine=innodb
  4. partition by range columns (b) --也可以partition by less columns (b)
  5. (partition p0 values less than('2009-01-01'),
  6. partition p1 values less than('2010-01-01'));

阅读(3176) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图