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/
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    python数据分析008_Matplotlib绘柱图,饼图,散点图
    python数据分析007_使用Matplotlib绘折线图
    python数据分析006_Python 2D绘图库Matplotlib
    python数据分析005_pandas的时间序列
    python数据分析004_多层索引的取值和排序
    python数据分析003_数据的合并筛选排序
    Megacli 简易使用
    k8s ingress 增加 跨域配置
    k8s 1.15 版本生产线上证书时间调整(亲测)
    grafana 展示 k8s prometheus
  • 原文地址:https://www.cnblogs.com/lavezhang/p/15772275.html
Copyright © 2011-2022 走看看