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;
  • 相关阅读:
    常用的XML读写
    未能使用提供程序 "RsaProtectedConfigurationProvider" 进行解密 的解决办法
    (原创)Urlrewrite 独立配置文件的使用方法
    The Two Interceptors: HttpModule and HttpHandlers
    根据最后修改时间查询存储过程
    Net下WinForm皮肤插件资源
    C# 主线程 辅助线程
    浅述WinForm多线程编程与Control.Invoke的应用
    ASP.NET实现图片防盗链
    URLRewrite 实现方法详解
  • 原文地址:https://www.cnblogs.com/Fredric-2013/p/4669659.html
Copyright © 2011-2022 走看看