zoukankan      html  css  js  c++  java
  • mysql 分区表

    mysql 提供分区表的功能,可以将大表进行分拆,分拆后可以极大的提升查询能力。

    备注:分区表的分区也可以部署到不同的物理磁盘。

    下面是一个典型的RANGE分区例子:

    1、创建数据库如下:

    DROP TABLE IF EXISTS t_demo_test4;
    CREATE TABLE t_demo_test4(
        tid int(20) NOT NULL AUTO_INCREMENT,
        day datetime NOT NULL,
        title varchar(50),
        content varchar(200),
        PRIMARY KEY(tid, day)    
    )PARTITION BY RANGE COLUMNS (day)(
        PARTITION P_3 VALUES LESS THAN ('2015-03-01'),
        PARTITION P_6 VALUES LESS THAN ('2015-06-01'),
        PARTITION P_9 VALUES LESS THAN ('2015-09-01'),
        PARTITION P_12 VALUES LESS THAN ('2015-12-31')
    );

    2、插入数据:

    insert into t_demo_test4(day, title, content) 
    values('2015-04-05 22:10:30','title1','content sinny write test')
    ,('2015-05-05 22:10:30','title1','一种内容1')
    ,('2015-06-06 22:10:30','title1','一种内容2')
    ,('2015-07-07 22:10:30','title1','一种内容3')
    ,('2015-08-08 22:10:30','title1','一种内容4');

    3、查询数据:

    SELECT * FROM t_demo_test4 WHERE day < '2015-5-30';

    通过explain查看:

    可以看到此时,rows = 4,改搜索并未遍历全部数据。

    //-------------------------------------------------------------------------------------------------------------------------------

    MYSQL还提供LIST、HASH、KEY三种分区方式,如下:

    DROP TABLE IF EXISTS t_demo_test5;
    CREATE TABLE t_demo_test5(
        tid int(20) NOT NULL AUTO_INCREMENT,
        day datetime NOT NULL,
        type varchar(50),
        content varchar(200),
        PRIMARY KEY(tid,type)    
    )PARTITION BY LIST COLUMNS(type)(
        PARTITION P_1 VALUES  IN ('report','note'),
        PARTITION P_2 VALUES  IN ('default')
    );
    DROP TABLE IF EXISTS t_demo_test5;
    CREATE TABLE t_demo_test5(
        tid int(20) NOT NULL AUTO_INCREMENT,
        day datetime NOT NULL,
        type varchar(50),
        content varchar(200),
        PRIMARY KEY(tid)    
    )PARTITION BY LINEAR HASH(tid)
    PARTITIONS 4;
    DROP TABLE IF EXISTS t_demo_test5;
    CREATE TABLE t_demo_test5(
        tid int(20) NOT NULL AUTO_INCREMENT,
        day datetime NOT NULL,
        type varchar(50),
        content varchar(200),
        PRIMARY KEY(tid)    
    )PARTITION BY LINEAR KEY(tid)
    PARTITIONS 4;
  • 相关阅读:
    LeetCode题解之Flipping an Image
    LeetCode 之Find Minimum in Rotated Sorted Array
    LeetCode题解Transpose Matrix
    LeetCode 题解之Minimum Index Sum of Two Lists
    LeetCode题解之Intersection of Two Linked Lists
    LeetCode 题解之Add Two Numbers II
    LeetCode题解之Add two numbers
    href="#"与href="javascript:void(0)"的区别
    有关ie9 以下不支持placeholder属性以及获得焦点placeholder的移除
    ie7下属性书写不规范造成的easyui 弹窗布局紊乱
  • 原文地址:https://www.cnblogs.com/Fredric-2013/p/4669659.html
Copyright © 2011-2022 走看看