zoukankan      html  css  js  c++  java
  • mysql日期字段分区索引

    创建测试表:

    CREATE TABLE `test_report` (
    `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
    `t_date` int(8) NOT NULL COMMENT '统计日期yyyymmdd',
    `cust_no` varchar(100) DEFAULT NULL COMMENT '客户号',
    `amount` decimal(26,6) DEFAULT NULL COMMENT '金额',
    PRIMARY KEY (`id`,`t_date`),
    KEY `idx_test_report_custno` (`cust_no`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试报表'

    表要满足两个要求
    1、分区字段必须位于联合主键中,例如,分区字段是t_date,联合主键就是id和t_date。
    2、分区字段必须是整型。

    添加分区索引:

    ALTER TABLE test_report PARTITION BY RANGE (t_date)(
        PARTITION p20200101 VALUES LESS THAN (20200101),
        PARTITION p20200201 VALUES LESS THAN (20200201),
        PARTITION p20200301 VALUES LESS THAN (20200301),
        PARTITION p20200401 VALUES LESS THAN (20200401),
        PARTITION p20200501 VALUES LESS THAN (20200501),
        PARTITION p20200601 VALUES LESS THAN (20200601),
        PARTITION p20200701 VALUES LESS THAN (20200701),
        PARTITION p20200801 VALUES LESS THAN (20200801),
        PARTITION p20200901 VALUES LESS THAN (20200901),
        PARTITION p20201001 VALUES LESS THAN (20201001),
        PARTITION p20201101 VALUES LESS THAN (20201101),
        PARTITION p20201201 VALUES LESS THAN (20201201),
        
        PARTITION p20210101 VALUES LESS THAN (20210101),
        PARTITION p20210201 VALUES LESS THAN (20210201),
        PARTITION p20210301 VALUES LESS THAN (20210301),
        PARTITION p20210401 VALUES LESS THAN (20210401),
        PARTITION p20210501 VALUES LESS THAN (20210501),
        PARTITION p20210601 VALUES LESS THAN (20210601),
        PARTITION p20210701 VALUES LESS THAN (20210701),
        PARTITION p20210801 VALUES LESS THAN (20210801),
        PARTITION p20210901 VALUES LESS THAN (20210901),
        PARTITION p20211001 VALUES LESS THAN (20211001),
        PARTITION p20211101 VALUES LESS THAN (20211101),
        PARTITION p20211201 VALUES LESS THAN (20211201),
        
        
        PARTITION p20220101 VALUES LESS THAN (20220101),
        PARTITION p20220201 VALUES LESS THAN (20220201),
        PARTITION p20220301 VALUES LESS THAN (20220301),
        PARTITION p20220401 VALUES LESS THAN (20220401),
        PARTITION p20220501 VALUES LESS THAN (20220501),
        PARTITION p20220601 VALUES LESS THAN (20220601),
        PARTITION p20220701 VALUES LESS THAN (20220701),
        PARTITION p20220801 VALUES LESS THAN (20220801),
        PARTITION p20220901 VALUES LESS THAN (20220901),
        PARTITION p20221001 VALUES LESS THAN (20221001),
        PARTITION p20221101 VALUES LESS THAN (20221101),
        PARTITION p20221201 VALUES LESS THAN (20221201),
        
        PARTITION pmax VALUES LESS THAN MAXVALUE
    )


    如果想删除指定的分区,可以执行如下SQL:

    ALTER TABLE test_report DROP PARTITION p20221201 ;

    确认分区索引是否添加好了:

    SELECT
      partition_name,
      partition_expression,
      partition_description,
      table_rows
    FROM information_schema.partitions
    WHERE table_schema='test'
      AND table_name='test_report'



    作者:Lave Zhang
    出处:http://www.cnblogs.com/lavezhang/
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    深入理解Elasticsearch写入过程 使用routing会导致docid不再全局唯一 Allocate策略 + routing参数
    force merge原理 + ES写入数据的过程
    Linux内核参数--time-wait回收--不建议设置
    elasticsearch迁移--利用腾讯云cos和nfs
    蓝鲸安装失败
    Apache Tomcat/8.5.51 secretRequired="true"
    自定义Nginx返回页面
    本地yum 源 iso文件 安装ansible
    elasticsearch字段属性值截断为32位
    rabbitmq-consul-apollo部署文档
  • 原文地址:https://www.cnblogs.com/lavezhang/p/15772275.html
Copyright © 2011-2022 走看看