mysql分区

1.检查mysql是否支持分区

 2.查看是否有分区

  

 

 

 2.分区类型:

       RANGE 分区:基于属于一个给定连续区间的列值,把多行分配给分区.

·      LIST 分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。

·      HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。

·      KEY 分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL 服务器提供其自身的哈希函数

3.案例演示

  list:分区

CREATE TABLE t2 (val INT)
PARTITION BY LIST(val)(
PARTITION p1 VALUES IN (1,3,5),
PARTITION p2 VALUES IN (2,4,6));

 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 p1 VALUES LESS THAN (11),
  PARTITION p2 VALUES LESS THAN (16),
  PARTITION p3 VALUES LESS THAN (21),
  PARTITION p4 VALUES LESS THAN maxvalue

);

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(YEAR(hired))
PARTITIONS 4

key分区使用的少,不做叙述

 

posted on 2020-10-24 10:38  孤灯引路人  阅读(169)  评论(0编辑  收藏  举报

导航