亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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)文章

  • 基于sqlalchemy對mysql實現(xiàn)增刪改查操作

    基于sqlalchemy對mysql實現(xiàn)增刪改查操作

    這篇文章主要介紹了基于sqlalchemy對mysql實現(xiàn)增刪改查操作,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • MySQL學(xué)習(xí)之基礎(chǔ)操作總結(jié)

    MySQL學(xué)習(xí)之基礎(chǔ)操作總結(jié)

    MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在WEB應(yīng)用方面 MySQL 是最好的。本文將為大家詳細介紹一下MySQL的基礎(chǔ)操作,需要的可以參考一下
    2022-03-03
  • MySQL數(shù)據(jù)庫高級數(shù)據(jù)操作之新增數(shù)據(jù)

    MySQL數(shù)據(jù)庫高級數(shù)據(jù)操作之新增數(shù)據(jù)

    這篇文章主要介紹了MySQL數(shù)據(jù)庫高級數(shù)據(jù)操作之新增數(shù)據(jù),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • 設(shè)置MySQLroot賬戶密碼報錯ERROR 1064 (42000): You have an error in your SQL syntax;的解決方案

    設(shè)置MySQLroot賬戶密碼報錯ERROR 1064 (42000): You 

    在安裝mysql的時候,設(shè)置root賬戶密碼出現(xiàn)了ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds..錯誤,本文小編給大家介紹了相關(guān)的解決方案,需要的朋友可以參考下
    2023-12-12
  • 解決Windows安裝mysql時提示MSVCR120.DLL動態(tài)庫缺失問題

    解決Windows安裝mysql時提示MSVCR120.DLL動態(tài)庫缺失問題

    在Windows Server 2012系統(tǒng)上安裝MySQL 5.7時遇到“由于找不到MSVCR120.dll,無法繼續(xù)執(zhí)行代碼”的錯誤,原因是系統(tǒng)缺少部分配置文件,解決方法是下載并安裝vcredist文件
    2025-02-02
  • MySQL8.0無法啟動3534的解決方法

    MySQL8.0無法啟動3534的解決方法

    本文主要是記錄一下自己使用MySQL的一次踩坑經(jīng)歷,我的MySQL安裝好后,使用一周后的同一時間必定報連接失敗,然后查找發(fā)現(xiàn)是MySQL本地服務(wù)沒有啟動,下面就詳細的介紹一下
    2021-06-06
  • Mysql用戶權(quán)限分配實戰(zhàn)項目詳解

    Mysql用戶權(quán)限分配實戰(zhàn)項目詳解

    用戶是數(shù)據(jù)庫的使用者和管理者,MySQL通過用戶的設(shè)置來控制數(shù)據(jù)庫操作人員的訪問與操作范圍,這篇文章主要給大家介紹了關(guān)于Mysql用戶權(quán)限分配實戰(zhàn)項目的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • MySQL的幾種安裝方式及配置問題小結(jié)

    MySQL的幾種安裝方式及配置問題小結(jié)

    這篇文章主要介紹了MySQL的幾種安裝方式及配置,然后在文章底部給大家介紹了安裝過程中的問題總結(jié),非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-07-07
  • mysql server is running with the --skip-grant-tables option

    mysql server is running with the --skip-grant-tables option

    今天在mysql中新建數(shù)據(jù)庫提示The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement,原來是數(shù)據(jù)中配置的--skip-grant-tables,這樣安全就降低了,這個一般當(dāng)忘記root密碼的時候需要這樣操作
    2017-07-07
  • 安裝配置MySQLMTOP來監(jiān)控MySQL運行性能的教程

    安裝配置MySQLMTOP來監(jiān)控MySQL運行性能的教程

    這篇文章主要介紹了安裝配置MySQLMTOP來監(jiān)控MySQL運行性能的教程,MySQLMTOP具有B/S方式的圖形化操作頁面,需要的朋友可以參考下
    2015-12-12

最新評論