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

    mysql 四种分区类型

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

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

    3.HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL 中有效的、产生非负整数值的任何表达式。

    4.KEY分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL服务器提供其自身的哈希函数。必须有一列或多列包含整数值。

    注:无论是哪种 MySQL分区类型,要么分区表上没有主键/唯一键,要么分区表的主键/唯一键都必须包含分区键,也就是说不能使用主键/唯一键字段之外的其它字段分区。

    RANGE 分区

    1.一种是在建表时建立分区 另一种是在发现表数据很大再来建立分区表速度会很慢

    实例: range 分区字段要为整数,我这里根据时间分区,unix_timastamp 时间转时间戳 

    mysql> ALTER TABLE posts PARTITION BY RANGE (unix_timestamp(post_at))(
        PARTITION p0 VALUES LESS THAN (1604188800),
        PARTITION p1 VALUES LESS THAN (1617235200),
        PARTITION p2 VALUES LESS THAN (1630454400),
        PARTITION p3 VALUES LESS THAN (1643673600),
        PARTITION p4 VALUES LESS THAN MAXVALUE
    );

    后面时间你也可以使用 unix_timetamp('2020-01-01') 表示

    最后记得 加上一个PARTITIAN 表名 VALUES LESS THAN MAXVALUE 将超过最后那个时间分区表的数据加入 最后的表,不然后面添加数据会报错

  • 相关阅读:
    单实例应用程序程序
    Jquery自定义滚动条插件
    Js的封装和闭包
    Js 鼠标拖拽div改变其大小
    在小组里遇到的一个让我产生迷惑的题
    一个用来快速生成指定大小的随机不重复int数组的实用方法
    动态绑定ASPxGridView选中状态
    “??”操作符
    小笔记系列——Word 添加行号
    日志 查看匹配内容的前后几行
  • 原文地址:https://www.cnblogs.com/LF-place/p/14560260.html
Copyright © 2011-2022 走看看