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

MySQL清理數(shù)據(jù)并釋放磁盤空間的實現(xiàn)示例

 更新時間:2023年07月12日 08:32:15   作者:楊同學(xué)technotes  
本文主要介紹了MySQL如何清理數(shù)據(jù)并釋放磁盤空間,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在我們的生產(chǎn)環(huán)境中有一張表:courier_consume_fail_message,是存放消息消費失敗的數(shù)據(jù)的,設(shè)計之初,這張表的數(shù)據(jù)量評估在萬級別以下,因此沒有建立索引。

但目前發(fā)現(xiàn),該表的數(shù)據(jù)量已經(jīng)達到百萬級別,原因產(chǎn)生了大量的重試消費,這導(dǎo)致了該表的慢查詢。

因此需要清理該表數(shù)據(jù)。而實際上,使用 DELETE 命令刪除數(shù)據(jù)后,我們發(fā)現(xiàn)查詢速度并沒有顯著提高,甚至可能會降低。為什么?

因為 DELETE 命令只是標(biāo)記該行數(shù)據(jù)為“已刪除”狀態(tài),并不會立即釋放該行數(shù)據(jù)在磁盤中所占用的存儲空間,這樣就會導(dǎo)致數(shù)據(jù)文件中存在大量的碎片,從而影響查詢性能。所以,除了刪除表記錄外,還需要清理磁盤碎片。

在表碎片清理前,我們關(guān)注以下四個指標(biāo)。

  • 指標(biāo)一:表的狀態(tài):SHOW TABLE STATUS LIKE 'courier_consume_fail_message';
  • 指標(biāo)二:表的實際行數(shù):SELECT count(*) FROM courier_consume_fail_message;
  • 指標(biāo)三:要清理的行數(shù):SELECT count(*) FROM courier_consume_fail_message where created_at < '2023-04-19 00:00:00';
  • 指標(biāo)四:表查詢的執(zhí)行計劃:EXPLAIN SELECT * FROM courier_consume_fail_message WHERE service='courier-transfer-mq';
?-- 清理磁盤碎片
?OPTIMIZE TABLE courier_consume_fail_message;

以下是清理前后的指標(biāo)對比。

一、清理前

指標(biāo)一,表的狀態(tài):

img

指標(biāo)二,表的實際行數(shù):76986

指標(biāo)三,要清理的行數(shù):76813

指標(biāo)四,表查詢的執(zhí)行計劃:

二、清理數(shù)據(jù)

下面是執(zhí)行 DELETE FROM courier_consume_fail_message WHERE created_at < '2023-04-19 00:00:00'; 后的統(tǒng)計。

指標(biāo)一,表的狀態(tài):

img

指標(biāo)二,表的實際行數(shù):173

指標(biāo)三,要清理的行數(shù):0

指標(biāo)四,表查詢的執(zhí)行計劃:

img

通過指標(biāo)四可以看到,清理表記錄后,查詢掃描的行數(shù)依然沒變:8651048。

三、清理碎片

下面是執(zhí)行 OPTIMIZE TABLE courier_consume_fail_message; 后的統(tǒng)計。

指標(biāo)一,表的狀態(tài):

img

指標(biāo)四,表查詢的執(zhí)行計劃:

img

通過指標(biāo)四可以看到,清理表記錄后,查詢掃描的行數(shù)變成了 100。

小結(jié)

可以看到,該表的數(shù)據(jù)行數(shù)和數(shù)據(jù)長度都被清理了,查詢語句掃描的行數(shù)也減少了。

為了提升 SELECT * FROM courier_consume_fail_message WHERE service='courier-transfer-mq'; 語句的查詢效率,還是應(yīng)當(dāng)建立索引。

?alter` `table` `ec_courier.courier_consume_fail_message ``add` `index` `idx_service(service);

到此這篇關(guān)于MySQL清理數(shù)據(jù)并釋放磁盤空間的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)MySQL 清理數(shù)據(jù)并釋放磁盤空間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 踩坑MySQL UNION和ORDER BY混用的問題及解決

    踩坑MySQL UNION和ORDER BY混用的問題及解決

    MySQL中UNION合并多個子集時,內(nèi)部ORDER BY可能失效,解決方法:各子集添加LIMIT,外層再包裹SELECT并使用ORDER BY,確保整體排序正確
    2025-09-09
  • 教你使用MySQL Shell連接數(shù)據(jù)庫的方法

    教你使用MySQL Shell連接數(shù)據(jù)庫的方法

    在有些情況下我們需要使用命令行方式連接MySQL數(shù)據(jù)庫,這時可以使用MySQL官方提供的命令行工具MySQL Shell,今天通過本文給大家介紹下mysql Shell連接數(shù)據(jù)庫的方法,感興趣的朋友一起看看吧
    2022-04-04
  • mysql多個TimeStamp設(shè)置的方法解讀

    mysql多個TimeStamp設(shè)置的方法解讀

    timestamp設(shè)置默認值是Default CURRENT_TIMESTAMP;timestamp設(shè)置隨著表變化而自動更新是ON UPDATE CURRENT_TIMESTAMP;接下來為您詳細介紹
    2012-11-11
  • 你知道m(xù)ysql中空值和null值的區(qū)別嗎

    你知道m(xù)ysql中空值和null值的區(qū)別嗎

    這篇文章主要給大家介紹了關(guān)于mysql中空值和null值區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 解析mysql中如何獲得數(shù)據(jù)庫的大小

    解析mysql中如何獲得數(shù)據(jù)庫的大小

    本篇文章是對mysql中如何獲得數(shù)據(jù)庫的大小的解決方法進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • mysql中Innodb 行鎖實現(xiàn)原理

    mysql中Innodb 行鎖實現(xiàn)原理

    InnoDB的行鎖是通過索引項加鎖實現(xiàn)的,分為使用索引和非索引字段檢索的情況,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • MySQL limit分頁大偏移量慢的原因及優(yōu)化方案

    MySQL limit分頁大偏移量慢的原因及優(yōu)化方案

    這篇文章主要介紹了MySQL limit分頁大偏移量慢的原因及優(yōu)化方案,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-11-11
  • MySQL中表復(fù)制:create table like 與 create table as select

    MySQL中表復(fù)制:create table like 與 create table as select

    這篇文章主要介紹了MySQL中表復(fù)制:create table like 與 create table as select,需要的朋友可以參考下
    2014-12-12
  • MySQL?中的權(quán)限管理及驗證流程

    MySQL?中的權(quán)限管理及驗證流程

    這篇文章主要介紹了MySQL?中的權(quán)限管理及驗證流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • 定位和優(yōu)化mysql慢查詢的常見方法分享

    定位和優(yōu)化mysql慢查詢的常見方法分享

    MySQL中的慢查詢(Slow Query)指執(zhí)行時間超過指定閾值的查詢語句,默認閾值是long_query_time參數(shù)設(shè)置的秒值,MySQL有幾種常見的方法可以發(fā)現(xiàn)和獲取慢查詢,接下來小編將給大家詳細的介紹一下這些方法,需要的朋友可以參考下
    2023-08-08

最新評論

福贡县| 广南县| 民勤县| 广丰县| 牙克石市| 肇源县| 公主岭市| 阿拉善盟| 贵南县| 浦江县| 江达县| 晋城| 麻江县| 贞丰县| 运城市| 九龙坡区| 德惠市| 周口市| 安康市| 嘉峪关市| 都兰县| 普定县| 阿拉善右旗| 靖安县| 天镇县| 孟津县| 盈江县| 奇台县| 靖西县| 邮箱| 丹寨县| 察隅县| 花垣县| 东明县| 宜丰县| 资兴市| 莱阳市| 禄劝| 沾化县| 云浮市| 广灵县|