美文网首页
MySQL分区

MySQL分区

作者: 日风和 | 来源:发表于2016-01-20 11:43 被阅读77次

一、分区优点

  1. 逻辑数据分割,存储在不同的位置
  2. 方便逻辑数据的删除,当不需要某逻辑数据,可以删除分区
  3. 优化查询,可以通过确定分区,更快定位数据存储位置
  4. 通过跨多个磁盘来分散数据查询,来获得更大的查询吞吐量
  5. 分区后数据仍存储在同一张表,满足一张表上的约束条件

二、分区限制

  1. 只能对整形数据进行分区
  2. 如果表含有主键或者唯一索引,则表的分区必须包含主键或者唯一索引
  3. 分区的最大数为1024
  4. 分区不支持全文索引
  5. 分区不支持外键

三、什么时候使用分区

  1. 海量数据表
  2. 历史表快速的查询,可以采用ARCHIVE+PARTITION的方式。
  3. 数据表索引大于服务器有效内存
  4. 对于大表,特别是索引远远大于服务器有效内存时,可以不用索引,此时分区效率会更有效。

四、分区的类型

  1. Range分区
  2. List分区
  3. Hash分区
  4. Key分区

五、分区示例

1.Range分区

CREATE TABLE employees (
id INT NOT NULL,
fname VARCHAR(30),
lname VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job_code INT NOT NULL,
store_id INT NOT NULL
)

PARTITION BY RANGE (store_id) (
PARTITION p0 VALUES LESS THAN (6),
PARTITION p1 VALUES LESS THAN (11),
PARTITION p2 VALUES LESS THAN (16),
PARTITION p3 VALUES LESS THAN MAXVALUE
);

2.LIst分区

CREATE TABLE employees (
id INT NOT NULL,
fname VARCHAR(30),
lname VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job_code INT,
store_id INT
)

PARTITION BY LIST(store_id)
PARTITION pNorth VALUES IN (3,5,6,9,17),
PARTITION pEast VALUES IN (1,2,10,11,19,20),
PARTITION pWest VALUES IN (4,12,13,14,18),
PARTITION pCentral VALUES IN (7,8,15,16)
);

3.Hash分区

CREATE TABLE employees (
id INT NOT NULL,
fname VARCHAR(30),
lname VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job_code INT,
store_id INT
)
PARTITION BY HASH(store_id)
PARTITIONS 4;

相关文章

  • MySQL分区表

    确认mysql是否支持分区表 mysql分区表的特点 创建mysql数据表为hash表 常用mysql分区的类型 ...

  • mysql分库分表

    课程内容 mysql分区 水平切分 垂直切分 1. mysql分区 1.1 什么是分区? mysql数据库中的数据...

  • mysql表分区

    mysql表分区主要分为RANGE分区,LIST分区,HASH分区,LINEAR HASH分区,KEY分区 目前,...

  • 对MySQL交换分区的实践

    前言 在介绍交换分区之前,我们先了解一下 mysql 分区。 数据库的分区有两种:水平分区和垂直分区。而MySQL...

  • Mysql分区

    介绍 Mysql5.5只支持水平分区,还不支持垂直分区。MySQL分区不能与使用 MERGE,CSV或 FEDER...

  • mysql分区

    mysql分区 Mysql支持水平分区,并不支持垂直分区;水平分区:指将同一表中不同行的记录分配到不同的物理文件中...

  • Mysql分区分析

    关于什么是分区和分表,可以先参考下面前两篇文章。 MySQL 分库分表与分区的区别和思考搞懂MySQL分区MySQ...

  • MySQL分区表介绍

    最近一直在复习MySQL分区表相关的知识,就简单整理下读书笔记。下面我们先来对mysql分区简单介绍下。 分区的概...

  • MySQL的分区、分表、集群、优化

    MySQL的分区 MySQL分区表是在数据库层面,MySQL自己实现的分表功能,在很大程度上简化了分表的难度。物理...

  • MySQL分区-Range分区

    在阐述MySQL分区时,我们需要先来了解一下分区的概念是什么,它的优势在哪里,是如何区分类型的。 1.分区概述 在...

网友评论

      本文标题:MySQL分区

      本文链接:https://www.haomeiwen.com/subject/xohlkttx.html