跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 世界
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠

工控达摩院

  1. 主页
  2. 诺软科技
  3. 内部技术讨论区
  4. 【Mysql】创建表分区

【Mysql】创建表分区

已定时 已固定 已锁定 已移动 内部技术讨论区
3 帖子 1 发布者 3 浏览 1 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 小
    小
    小诺
    发表于 最后由 编辑
    #1

    【Mysql】创建表分区,示例代码:每个taglogging单独一个表,分成十年,每年按照哈希算法分成100份。



    -- Partition the table

    ALTER TABLE tlg_vid_01_10

    PARTITION BY RANGE(YEAR(TIMESTAMP))

    SUBPARTITION BY HASH(TO_DAYS(TIMESTAMP))

    SUBPARTITIONS 100

    (

    PARTITION p0 VALUES LESS THAN (2021),

    PARTITION p1 VALUES LESS THAN (2022),

    PARTITION p2 VALUES LESS THAN (2023),

    PARTITION p3 VALUES LESS THAN (2024),

    PARTITION p4 VALUES LESS THAN (2025),

    PARTITION p5 VALUES LESS THAN (2026),

    PARTITION p6 VALUES LESS THAN (2027),

    PARTITION p7 VALUES LESS THAN (2028),

    PARTITION p8 VALUES LESS THAN (2029),

    PARTITION p9 VALUES LESS THAN (MAXVALUE)

    );



    -- Show Table Partition

    SELECT

    partition_name part,

    partition_expression expr,

    partition_description descr,

    table_rows

    FROM

    INFORMATION_SCHEMA.partitions

    WHERE

    TABLE_SCHEMA = 'OS07'

    AND TABLE_NAME='tlg_vid_01_10' ;



    -- Show Table Directory

    SHOW VARIABLES LIKE 'datadir';


    附件:
    Mysq table partition sample.sql

    1 条回复 最后回复
    0
    • 小
      小
      小诺
      发表于 最后由 编辑
      #2

      优化分区,碎片整理

      -- Optimize Partition

      ALTER TABLE tlg_batchid

      OPTIMIZE PARTITION p0,p1,p2,p3,p4,p5,p6,p7,p8,p9

      1 条回复 最后回复
      0
      • 小
        小
        小诺
        发表于 最后由 编辑
        #3

        创建一个新的tlg表:

        • 创建表
        • 主键TableID,自增
        • truncat清空表
        • 表分区Partition
        • Optimize优化表
        • 下面代码不完全对,仅复制参考修改




        CREATE TABLE os07.tlgxx_tempate (

        PRIMARY KEY (TableID, TimeStamp)

        ) ENGINE = INNODB COLLATE = utf8_general_ci COMMENT = ''

        SELECT

        TableID,

        ValueID,

        TimeStamp,

        TagValue,

        Qaulity,

        FROM

        os07.tlg13_batchid

        WHERE 1 = 0

        -- Clear Table, Primary Key from 0;

        TRUNCATE TABLE tlgxx_tempate;



        -- Partition the table

        ALTER TABLE tlgxx_tempate

        PARTITION BY RANGE(YEAR(TIMESTAMP))

        SUBPARTITION BY HASH(TO_DAYS(TIMESTAMP))

        SUBPARTITIONS 100

        (

        PARTITION p0 VALUES LESS THAN (2021),

        PARTITION p1 VALUES LESS THAN (2022),

        PARTITION p2 VALUES LESS THAN (2023),

        PARTITION p3 VALUES LESS THAN (2024),

        PARTITION p4 VALUES LESS THAN (2025),

        PARTITION p5 VALUES LESS THAN (2026),

        PARTITION p6 VALUES LESS THAN (2027),

        PARTITION p7 VALUES LESS THAN (2028),

        PARTITION p8 VALUES LESS THAN (2029),

        PARTITION p9 VALUES LESS THAN (MAXVALUE)

        );

        -- Optimize Partition

        ALTER TABLE tlgxx_tempate

        OPTIMIZE PARTITION p0,p1,p2,p3,p4,p5,p6,p7,p8,p9



        附件:
        Mysq new tlg table.sql

        1 条回复 最后回复
        0

        你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

        厌倦了每次访问都刷到同样的帖子?您注册账号后,您下次访问时都将自动回到上次浏览的位置,并可选择接收新回复的通知(通过电子邮件或推送通知)。您还可以收藏帖子、为帖子点赞,以此向其他社区成员表达您的感谢。

        有了你的建议,这篇帖子会更精彩哦 💗

        注册 登录
        回复
        • 在新帖中回复
        登录后回复
        • 从旧到新
        • 从新到旧
        • 最多赞同


        • 登录

        • 登录或注册以进行搜索。
        Powered by NodeBB Contributors
        • 第一个帖子
          最后一个帖子
        0
        • 版块
        • 最新
        • 标签
        • 热门
        • 世界
        • 用户
        • 群组