最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL按時間進行表分區(qū)的方法代碼

 更新時間:2024年09月29日 10:47:56   作者:逢生博客  
本文介紹如何在MySQL中創(chuàng)建按月份分區(qū)的表,并通過修改配置文件或使用數(shù)據(jù)庫事件來實現(xiàn)自動分區(qū),文中通過代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用MySQL具有一定的參考借鑒價值,需要的朋友可以參考下

創(chuàng)建按月份分區(qū)的表

create table if not exists table_name
(
    id          bigint auto_increment comment '主鍵id',
    
    create_by   varchar(64)                        not null comment '創(chuàng)建者',
    create_time datetime default CURRENT_TIMESTAMP not null comment '創(chuàng)建時間',
    update_by   varchar(64)                        null comment '更新者',
    update_time datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新時間',
    primary key (id, create_time)
)
    comment '測試表名' partition by range (TO_DAYS(create_time)) (
    partition P202401 values less than (TO_DAYS('2024-02-01')) ,
    partition P202402 values less than (TO_DAYS('2024-03-01')) ,
    partition P202403 values less than (TO_DAYS('2024-04-01')) ,
    partition P202404 values less than (TO_DAYS('2024-05-01'))
);

開啟數(shù)據(jù)庫事件

臨時配置(服務(wù)重啟會失效)

-- 開啟事件
SET GLOBAL event_scheduler = ON;
-- 查看事件是否開啟
SHOW VARIABLES LIKE '%event_sche%';

修改my.cnf文件(推薦)

  • 進入MySQL所在的服務(wù)器
sudo vi /etc/my.cnf
  • 找到 [mysqld],添加如下內(nèi)容
event_scheduler = ON
  • 重啟 MySQL 服務(wù)以使更改生效
sudo systemctl restart mysqld

定時事件自動建分區(qū)

  • 例:提前創(chuàng)建下個月的分區(qū),如2024-04-01創(chuàng)建5月份的分區(qū) P202405,2024-05-01創(chuàng)建6月份的分區(qū)。
create event event_create_partition on schedule
    every '1' MONTH starts '2024-04-01 00:00:00'
    on completion preserve
    enable 
    do 
    BEGIN
    
    	-- 當(dāng)前時間 2024-04-01 00:00:00
		-- _DATE = 2024-05-01
    	DECLARE _DATE VARCHAR(10) DEFAULT ADDDATE(SUBDATE(CURDATE(), DAY(CURDATE()) - 1), INTERVAL 1 MONTH);
    	-- P202405
    	SET @PARTITION_NAME = CONCAT('P', DATE_FORMAT(_DATE, '%Y%m'));
    	-- 2024-06-01
    	SET @SHEAR_DATE = CONCAT('', ADDDATE(LAST_DAY(_DATE), 1));
    	
        SET @SQL = CONCAT('ALTER TABLE table_name ADD PARTITION (PARTITION ', @PARTITION_NAME, ' VALUES LESS THAN (TO_DAYS("', @SHEAR_DATE, '")))');
        PREPARE STMT FROM @SQL;
        EXECUTE STMT;
        DEALLOCATE PREPARE STMT;

    END;

注意: 數(shù)據(jù)庫event_scheduler = ON 要確認有開啟,否則 event_create_partition 事件不會執(zhí)行。

  • 查看所有事件
SHOW EVENTS;

查詢表分區(qū)信息

SELECT
   TABLE_SCHEMA,
   TABLE_NAME,
   PARTITION_NAME,
   PARTITION_METHOD,
   PARTITION_EXPRESSION,
   SUBPARTITION_NAME,
   SUBPARTITION_METHOD,
   SUBPARTITION_EXPRESSION
FROM information_schema.partitions
WHERE TABLE_SCHEMA = '數(shù)據(jù)庫名'
AND TABLE_NAME IN ('table_name')
ORDER BY PARTITION_NAME DESC;

總結(jié) 

到此這篇關(guān)于MySQL按時間進行表分區(qū)的文章就介紹到這了,更多相關(guān)MySQL按時間表分區(qū)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql啟動服務(wù)報1058錯誤的解決方法

    mysql啟動服務(wù)報1058錯誤的解決方法

    這篇文章主要介紹了mysql啟動服務(wù)報1058錯誤的解決方法,需要的朋友可以參考下
    2014-03-03
  • MySQL 8.0.19安裝詳細教程(windows 64位)

    MySQL 8.0.19安裝詳細教程(windows 64位)

    這篇文章主要介紹了MySQL 8.0.19安裝詳細教程(windows 64位),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • windows下mysql 5.7版本中修改編碼為utf-8的方法步驟

    windows下mysql 5.7版本中修改編碼為utf-8的方法步驟

    mysql的默認編碼是拉丁(latin1),當(dāng)輸入中文的時候就會報錯,所以需要將編碼修改為utf8,從網(wǎng)上找了相關(guān)教程都不可以,索性自己摸索后分享給大家,下面這篇文章主要給大家介紹了在mysql 5.7版本中如何修改編碼為utf-8的方法步驟,需要的朋友可以參考下。
    2017-06-06
  • MySQL數(shù)據(jù)庫無法遠程連接的問題詳細解決過程

    MySQL數(shù)據(jù)庫無法遠程連接的問題詳細解決過程

    這篇文章主要介紹了MySQL數(shù)據(jù)庫無法遠程連接問題的詳細解決過程,解決MySQL無法遠程連接的問題需要檢查并修改MySQL的用戶權(quán)限,確保配置文件允許遠程訪問,并且防火墻開放3306端口,需要的朋友可以參考下
    2025-05-05
  • Mysql數(shù)據(jù)庫性能優(yōu)化二

    Mysql數(shù)據(jù)庫性能優(yōu)化二

    這篇文章主要介紹了Mysql數(shù)據(jù)庫性能優(yōu)化二 的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • mysql如何將查詢結(jié)果內(nèi)容進行轉(zhuǎn)換

    mysql如何將查詢結(jié)果內(nèi)容進行轉(zhuǎn)換

    文章介紹了如何在MySQL中使用CASE表達式對查詢結(jié)果進行多分支判斷,并分享了個人經(jīng)驗,希望對大家有所幫助
    2025-02-02
  • MySQL從零開始了解數(shù)據(jù)庫開發(fā)之復(fù)合查詢

    MySQL從零開始了解數(shù)據(jù)庫開發(fā)之復(fù)合查詢

    本文介紹了MySQL數(shù)據(jù)庫開發(fā)中的復(fù)合查詢技術(shù),包括多表查詢、自連接和子查詢?nèi)N方法,示例演示了從員工表和部門表中聯(lián)合查詢員工姓名、工資及部門名稱, 本文結(jié)合實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • mysql binlog占用大量磁盤空間的解決方法

    mysql binlog占用大量磁盤空間的解決方法

    MySQL binlog(Binary Log)是MySQL數(shù)據(jù)庫的一種重要組件,用于記錄所有對數(shù)據(jù)庫的更改操作,當(dāng)MySQL服務(wù)器接收到對數(shù)據(jù)庫的寫入請求并成功執(zhí)行后,這些更改會被寫入binlog,本文給大家介紹了mysql binlog占用大量磁盤空間的解決方法,需要的朋友可以參考下
    2024-06-06
  • MySQL的id關(guān)聯(lián)和索引使用的實際優(yōu)化案例

    MySQL的id關(guān)聯(lián)和索引使用的實際優(yōu)化案例

    這篇文章主要介紹了MySQL的id關(guān)聯(lián)實際優(yōu)化案例,關(guān)聯(lián)和索引一直是MySQL常見的可優(yōu)化大塊兒,需要的朋友可以參考下
    2015-05-05
  • Mysql性能優(yōu)化案例研究-覆蓋索引和SQL_NO_CACHE

    Mysql性能優(yōu)化案例研究-覆蓋索引和SQL_NO_CACHE

    這篇文章主要介紹了Mysql性能優(yōu)化案例研究-覆蓋索引和SQL_NO_CACHE,需要的朋友可以參考下
    2016-03-03

最新評論

鄂托克前旗| 大冶市| 徐汇区| 桐柏县| 平阴县| 南丹县| 滦南县| 阿鲁科尔沁旗| 金坛市| 仙居县| 灵武市| 定安县| 武宣县| 什邡市| 枣阳市| 托里县| 诸城市| 额济纳旗| 黔江区| 大洼县| 洮南市| 泸州市| 当阳市| 安平县| 方正县| 石嘴山市| 都匀市| 牡丹江市| 故城县| 通许县| 通榆县| 兴和县| 从江县| 中卫市| 乌海市| 保德县| 长子县| 句容市| 万年县| 南部县| 新晃|