码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Mysql8 创建表,按年/月或其他条件进行分区存储


    一.创建订单表orders :

    --------------------如果表有主键,那么分区列也必须设置成主键--------------------------

    1. CREATE TABLE orders (
    2. id INT NOT NULL,
    3. sale_date DATE NOT NULL,
    4. amount DECIMAL(10, 2) NOT NULL,
    5. PRIMARY KEY (id, sale_date)
    6. )
    7. PARTITION BY RANGE COLUMNS(sale_date) (
    8. PARTITION p2021_01 VALUES LESS THAN ('2021-02-01'),
    9. PARTITION p2021_02 VALUES LESS THAN ('2021-03-01'),
    10. PARTITION p2021_03 VALUES LESS THAN ('2021-04-01'),
    11. PARTITION p2023_01 VALUES LESS THAN ('2023-02-01')
    12. );

    测试看看

    INSERT INTO orders(id, sale_date, amount) VALUES(1,'1992-01-01',10.1)

    二.更改分区办法:

    1.改为按月进行分区存储

    1. ALTER TABLE orders PARTITION BY RANGE (MONTH(sale_date)) (
    2. PARTITION p310 VALUES LESS THAN (4)
    3. );

    2.改为按年进行分区存储

    1. ALTER TABLE orders PARTITION BY RANGE (year(sale_date)) (
    2. PARTITION p310 VALUES LESS THAN (2021)
    3. );

    3.改为按COLUMNS进行分区存储

    1. ALTER TABLE orders PARTITION BY RANGE COLUMNS(sale_date) (
    2. PARTITION p3101 VALUES LESS THAN ('2021-01-01') );

    注意 COLUMNS(sale_date) 外部没有括号

    二.增加分区

    1. ALTER TABLE orders ADD PARTITION (
    2. PARTITION p202302 VALUES LESS THAN ('2023-03-01')
    3. );

    四.查询分区

    1. SELECT 1
    2. FROM information_schema.partitions
    3. WHERE table_schema = 'test_db' -- 替换为您的数据库名
    4. AND TABLE_NAME = 'orders' -- 替换为您的表名
    5. AND partition_name = '20230301'; -- 替换为您想要检查的分区名

  • 相关阅读:
    【Netty 从成神到升仙系列 五】Netty 的责任链真有这么神奇吗?
    单机/分布式限流-漏桶/令牌桶/滑动窗口/redis/nginx/sentinel
    ASP.NET的WebService跨域CORS问题解决方案
    mysql索引、事务、存储引擎
    火山引擎 RTC 自研音频编码器 NICO 实践之路
    4.任务调度
    Ragnar-lothbrok 靶机
    登录业务实现(单点登录+微信扫码+短信服务)
    【基础】并发(ThreadLocal、synchronized、线程池、锁、volatile)面试题
    SVN Java 客户端 svnkit 查询两个日期或版本之间的文件差异,类似 svn diff 命令
  • 原文地址:https://blog.csdn.net/cyw8998/article/details/138130796
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号