`

MySQL分区表

 
阅读更多

查看分区情况


点击(此处)折叠或打开

  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 p0 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. INT,
  3. 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. 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. 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'));
分享到:
评论

相关推荐

    MYSQL分区表测试

    MYSQL分区表测试过程详细说明。MYSQL分区表测试过程详细说明。

    互联网公司为啥不使用mysql分区表

    互联网公司为啥不使用mysql分区表

    MySQL分区表自动创建及删除存储过程

    用存储过程实现了MySQL数据库分区表的自动创建和自动删除功能。亲测有效。希望有用。

    MySQL分区表的最佳实践指南

    主要给大家介绍了关于MySQL分区表的最佳实践指南,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    Mysql分区表的管理与维护

    改变一个表的分区方案只需使用alter table 加 partition_options 子句就可以了。这篇文章主要介绍了Mysql分区表的管理与维护,非常不错,感兴趣的朋友一起学习吧,需要的朋友可以参考下

    mysql分区表管理(完整版)

    数据库分区是一种物理数据库设计技术。虽然分区技术可以实现很多效果,但其主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减sql语句的响应时间,同时对于...MYSQL的分区主要有两种形式:水平分区和垂直分区。

    生产中使用和管理MySQL分区表

    分库什么的,如果是垂直的话,dba 没法一个人搞的,肯定要和研发的做下来谈的。水平可以自己搞!

    详解MySQL分区表

    本篇文章给大家带来的内容是关于MySQL中分区表的介绍及使用场景,有需要的朋友可以参考一下,希望对你有所帮助。 1.分区的目的及分区类型 MySQL在创建表的时候可以通过使用PARTITION BY子句定义每个分区存放的数据。...

    创建mysql表分区的方法

    表分区的测试使用,主要内容来自于其他博客文章以及mysql5.1的参考手册mysql测试版本:mysql5.5.28mysql物理存储文件(有mysql配置的datadir决定存储路径)格式简介数据库engine为MYISAMfrm表结构文件,myd表数据...

    MySQL分区表的局限和限制详解

    禁止构建 分区表达式不支持以下几种构建: 存储过程,存储函数,UDFS或者...在MySQL 5.7.1之前的分区表不支持HANDLER语句,以后的版本取消了这一限制。 服务器SQL模式 如果要用用户自定义分区的表的话,需要注意的是

    通过实例学习MySQL分区表原理及常用操作

    我们试着想一想, 在生产环境中什么最重要? 我感觉在生产环境中应该没有什么比数据跟更为重要. 那么我们该如何保证数据不丢失、或者丢失后可以快速恢复呢?只要看完这篇大家应该就能对MySQL中数据备份有一定了解

    MySQL分区表的正确使用方法

    MySQL分区表概述 我们经常遇到一张表里面保存了上亿甚至过十亿的记录,这些表里面保存了大量的历史记录。 对于这些历史数据的清理是一个非常头疼事情,由于所有的数据都一个普通的表里。所以只能是启用一个或多个带...

    MySQL分区表的基本入门教程

    在最近的项目中,我们需要保存大量的数据,而且这些数据是有有效期的,为了提供查询效率以及快速删除过期数据,我们选择了MySQL的分区机制。把数据按照时间进行分区。 分区类型 Range分区:最为常用,基于属于一个...

    Rails中使用MySQL分区表一个提升性能的方法

    主要介绍了Rails中使用MySQL分区表一个提升性能的方法,本文总结出了一个简单的方法实现避免扫描全部的分区表,从而提升性能,需要的朋友可以参考下

    mysql分区表LIST

    1.新建普通表 CREATE TABLE data(id int(30) ,time int(12), sarlay decimal(12,2)); 2.插入数据 INSERT INTO data VALUES (1,201911,10000), (2,201912, 12000)...3.建立LIST分区表 CREATE TABLE data_list(id int(30)

Global site tag (gtag.js) - Google Analytics