• 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 将超过最后那个时间分区表的数据加入 最后的表,不然后面添加数据会报错

  • 相关阅读:
    让Vim查找字符忽略大小写
    How to Add a User to Sudoers on Ubuntu
    Docker 批量删除images
    解决 Laradock 安装时候出现 Can't open /home/laradock/.nvm/nvm.sh 的问题
    Add User To Docker Group In Ubuntu Linux
    Parted分区和创建逻辑卷LVM
    How To List Users and Groups on Linux
    How to Install Node.js and NPM on Mac OS
    linux中的alias命令详解
    Hadoop数据类型
  • 原文地址:https://www.cnblogs.com/LF-place/p/14560260.html
Copyright © 2020-2023  润新知