在MySQL中表的分区类型总的来说有四种:

第一种:range分区、基于一个给定的区间范围,把数据分配到不同的分区。

第二种:list   分区、基本枚举的值列表进行分区。

第三种:hast 分区、基于分区个数把数据分到不同的分区。

第四种:key  分区、与hash分区差不多。

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

  第一种:range 分区、在MySQL 5.1中只支持int 类型的字段进行分区、5.5后增加了对datetime 与varchar 的支持 只是要把range 改成range columns 才可以

    例一:int 类的range分区 create table t3(x int, y int) partition by range (x) (partition p0 values less than(100),partition p1 values less than(200));

    例二:为表增加一个分区

    alter table t3 add partition (partition p2 values less than(maxvalue));

    例三:varchar or datetime 类型的分区

    create table t4(x varchar(32),y varchar(32)) partition by range columns (x) (partition p0 values less than('100'),partition p2 values less                       than(maxvalue));

  第二种:list 分区、在list 分区中不存在values less than(maxvalues) 这样的定义方式;也就是说插入的值如果列表中没有列出就会报错。

list 也是支持 varchar 这样的数据类型的只是要加 columns 这个关键字

    例一:create table t5(x int,y int) partition by list (x) (partition p0 values in (1,3,5,7,9),partition p1 values in (2,4,6,8));

    例二:create table t6(x varchar(100),y varchar(100)) partition by list columns (x) (partition p0 values in ('a'),partition p1 values in ('b'));

  第三种:hash 分区、主要用来分散热点读,确保数据在各个分区中尽可能平均的分布。普通hash 用的是取模算法、打个比方如果分四个区、

    新插入的数据会到哪个分区当中去是根据分区键除四取模得到的。然而这个会带来问题,如我们把分区加到5的时候以前的老数据都会重新算

    一次才可以确定这行数据要存在哪个分区里。这会引起性能问题。

    create table t7(x int,y int) partition by hash (x) partitions 5;-- hash(expr) expr 如果为一个返回整数的表达式也是可以的。

  第四种:key 分区、和hash分区相差不大。它有两大优点一它支持text,blob 之外的所有数据类型、二它可以指定多个列。

    create table t8(x varchar(32),y varchar(32)) partition by key(x,y) partitions 4;

MySQL 表分区A的更多相关文章

  1. MySQL表分区技术

    MySQL表分区技术 MySQL有4种分区类型: 1.RANGE 分区 - 连续区间的分区 - 基于属于一个给定连续区间的列值,把多行分配给分区: 2.LIST 分区 - 离散区间的分区 - 类似于按 ...

  2. Mysql 表分区和性能

    以下内容节选自<Mysql技术内幕InnoDB存储引擎> mysql表分区: 分区功能并不是所有存储引擎都支持的,如CSV.MERGE等就不支持.mysql数据库支持的分区类型为水平分区( ...

  3. Mysql表分区的选择与实践小结

    在一些系统中有时某张表会出现百万或者千万的数据量,尽管其中使用了索引,查询速度也不一定会很快.这时候可能就需要通过分库,分表,分区来解决这些性能瓶颈. 一. 选择合适的解决方法 1. 分库分表. 分库 ...

  4. Mysql 表分区

    是否支持分区:mysql> show variables like '%partition%';+-----------------------+-------+| Variable_name ...

  5. MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测)

    一.什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了.如:某用户表的记录超过了1000万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区 ...

  6. mysql表分区(摘自 MySQL表的四种分区类型)

    一.什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了. 如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区 ...

  7. MySQL表分区

    MySQL的表分区 一.什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了.如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以 ...

  8. mysql表分区、查看分区

    原文地址:http://blog.csdn.net/feihong247/article/details/7885199 一.       mysql分区简介 数据库分区 数据库分区是一种物理数据库设 ...

  9. MYSQL 表分区的 3 方法

    背景知识: 表分区是把逻辑上同一范围的数据保存到同一个文件中,就和超市一样,把同类商品放在同一个区域,把不同的商品放在不同的地方.不同的是超市中 是根据用途分类的,表分区是根据它的取值区间来分的. 分 ...

  10. mysql表分区简述

    一. 简介 数据库分区 数据库分区是一种物理数据库设计技术.虽然分区技术可以实现很多效果,但其主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减sql语句的响应时间,同时对于应用来说分区完全是 ...

随机推荐

  1. 网络分析shell脚本(实时流量+连接统计)

    介绍一个强大的分析网络的shell脚本,此脚本是从EZHTTP拆分出来的,觉得有必要单独介绍下.脚本运行效果截图: 此脚本包含的功能有: 1.实时监控任意网卡的流量 2.统计10秒内平均流量 3.统计 ...

  2. JAVA关键字transient

    转载自http://www.cnblogs.com/liuling/archive/2013/05/05/transient.html 1.transient关键字只能修饰变量,而不能修饰方法和类.注 ...

  3. 判断浏览器 IE 11

    var getOs=function()  {   try {  var u = window.navigator.userAgent.toLocaleLowerCase(),  msie = /(m ...

  4. 如何寻找java的安装路径问题

    关于不知道JAVA安装在linux的哪 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans ...

  5. 简单的表单验证(js、jquery)

    //javascript代码 function valForm(){ var username=document.getElementById("username"); var p ...

  6. codeforces 665E Beautiful Subarrays

    题目链接 给一个数列, 让你找出异或结果大于等于k的子序列的个数. 因为任意一段序列的异或值都可以用前缀异或和来表示, 所以我们先求出前缀异或和. 我们考虑字典树, 对于每一个前缀sum, 我们先查询 ...

  7. Asp.net MVC学习--默认程序结构、工作流程

    二.MVC 默认程序结构 MVC新建好之后,会对应的出现几个包,分别是:Controller.Model.View --即MVC 其中的默认的Default.aspx文件可以方便url重写,如果不设置 ...

  8. “Options模式”下的配置是如何绑定为Options对象

    “Options模式”下的配置是如何绑定为Options对象 配置的原子结构就是单纯的键值对,并且键和值都是字符串,但是在真正的项目开发中我们一般不会单纯地以键值对的形式来使用配置.值得推荐的做法就是 ...

  9. linux搭建php

    http://www.cnblogs.com/wubaiqing/archive/2011/11/08/2241195.html 四,启动php-fpm & Nginx /usr/local/ ...

  10. 【Windows 8 Store App】学习:目录

    原文http://www.cnblogs.com/java-koma/archive/2013/05/22/3093302.html 写在前面:我之前从事java开发,对MS的一整套东西还没入门哈,难 ...