Mysql表如何按照日期字段的年月分區(qū)
一、創(chuàng)鍵表時(shí)直接設(shè)置分區(qū)
CREATE TABLE your_table_name ( id INT NOT NULL AUTO_INCREMENT, sale_date DATE NOT NULL, amount DECIMAL(10, 2) NOT NULL, PRIMARY KEY (id, sale_date) ) PARTITION BY RANGE COLUMNS(sale_date) ( PARTITION p2020_01 VALUES LESS THAN ('2020-02-01'), PARTITION p2020_02 VALUES LESS THAN ('2020-03-01'), PARTITION p2020_03 VALUES LESS THAN ('2020-04-01'), PARTITION p2021_01 VALUES LESS THAN ('2021-02-01'), PARTITION p_max VALUES LESS THAN (MAXVALUE) );
二、已有表分區(qū)
1、分區(qū)的前置條件
確保主鍵或唯一鍵包含分區(qū)鍵,若已經(jīng)創(chuàng)建表可以修改
ALTER TABLE your_table_name DROP PRIMARY KEY; ALTER TABLE your_table_name ADD PRIMARY KEY (id, xxdate);
2、分區(qū)操作
查詢(xún)需要分區(qū)的日期字段所含有的年月
SELECT DISTINCT DATE_FORMAT(xxdate, '%Y-%m') AS YM FROM your_table_name ORDER BY YM;
根據(jù)上面sql語(yǔ)句查詢(xún)的年月數(shù)據(jù)創(chuàng)建分區(qū)
# 我這只有202307、202308兩個(gè)月數(shù)據(jù) ALTER TABLE your_table_name PARTITION BY RANGE COLUMNS(xxdate) ( PARTITION p2023_07 VALUES LESS THAN ('2023-08-01'), PARTITION p2023_08 VALUES LESS THAN ('2023-09-01'), PARTITION p_max VALUES LESS THAN (MAXVALUE) );
三、驗(yàn)證
EXPLAIN SELECT * from your_table_name where xxdate BETWEEN '2023-07-01' and '2023-07-31';
partitions 命中一個(gè)目標(biāo)分區(qū)則分區(qū)成功,如:partitions列的值為 p2023_07
四、注意
如果有新的月份分區(qū)需要增加,則需要手動(dòng)去修改,否則歸為p_max分區(qū)影響查詢(xún)效率
ALTER TABLE your_table_name PARTITION BY RANGE COLUMNS(xxdate) ( PARTITION p2023_07 VALUES LESS THAN ('2023-08-01'), PARTITION p2023_08 VALUES LESS THAN ('2023-09-01'), # 在這里添加 PARTITION p_max VALUES LESS THAN (MAXVALUE) );
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于MySQL的整型數(shù)據(jù)的內(nèi)存溢出問(wèn)題的應(yīng)對(duì)方法
這篇文章主要介紹了關(guān)于MySQL的整型數(shù)據(jù)的內(nèi)存溢出問(wèn)題的應(yīng)對(duì)方法,作者還列出了MySQL所支持的整型數(shù)據(jù)的存儲(chǔ)空間支持大小,需要的朋友可以參考下2015-05-05MySql用DATE_FORMAT截取DateTime字段的日期值
MySql截取DateTime字段的日期值可以使用DATE_FORMAT來(lái)格式化,使用方法如下2014-08-08Centos7下安裝和配置MySQL5.7.20的詳細(xì)教程
這篇文章主要介紹了Linux(CentOS7)下安裝和配置MySQL5.7.20詳細(xì)教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià),需要的朋友可以參考下2020-05-05mysql之validate_password_policy的使用
這篇文章主要介紹了mysql之validate_password_policy的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05