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

一次mysql的.ibd文件過(guò)大處理過(guò)程記錄

 更新時(shí)間:2022年06月29日 11:20:04   作者:精神病院里病最重的人  
mysql數(shù)據(jù)庫(kù)的每個(gè)表都有ibd和frm兩種格式的文件,ibd文件是表的數(shù)據(jù)文件,存放表的數(shù)據(jù),修改文件后綴,無(wú)法在MySQL數(shù)據(jù)庫(kù)中查詢表數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于一次mysql的.ibd文件過(guò)大處理過(guò)程的相關(guān)資料,需要的朋友可以參考下

一條zabbix微信的磁盤告警打破了往常的寧?kù)o

收到告警之后發(fā)現(xiàn)是mysql的datadir目錄,按著平時(shí)習(xí)慣開(kāi)始排查;過(guò)程就不說(shuō)了,最后發(fā)現(xiàn)某個(gè)庫(kù)的目錄大小異常,然后進(jìn)去查看之后發(fā)現(xiàn)jdp_tb_trade.ibd過(guò)大,達(dá)到46G;跟真實(shí)數(shù)據(jù)量不符,就此打算對(duì)它下手處理。

那么,我們知道ibd文件是每個(gè)數(shù)據(jù)庫(kù)里面每個(gè)表的數(shù)據(jù)空間,每個(gè)表的數(shù)據(jù)和索引都會(huì)存在自已的表空間中。

這么重要的東西肯定不能直接在線上操作,畢竟之前完全不知道處理這個(gè)東西會(huì)產(chǎn)生什么影響,那接下來(lái)就是測(cè)試環(huán)境的再現(xiàn)過(guò)程了:

測(cè)試環(huán)境:配置直接cp線上的my.cnf

然后建庫(kù)建表,插入數(shù)據(jù),使該表的ibd文件增大

最后如圖:

該文件46G,表里面的數(shù)據(jù)也有八百多萬(wàn)條,接下來(lái)就是再現(xiàn)線上環(huán)境的操作了(線上環(huán)境增刪操作多),先刪個(gè)10數(shù)據(jù),并且用優(yōu)化命令對(duì)該表進(jìn)行優(yōu)化(optimize):

但是發(fā)現(xiàn)在等待該命令執(zhí)行結(jié)果的過(guò)程中,根目錄一直在增長(zhǎng):

直到跟目錄被占用百分百之后,優(yōu)化命令報(bào)錯(cuò)了:

報(bào)錯(cuò)之后跟目錄空間瞬間釋放了:

這里我當(dāng)時(shí)猜想到是因?yàn)榕R時(shí)表的問(wèn)題,但是不知道怎么改臨時(shí)表的存儲(chǔ)目錄,那肯定是不懂就問(wèn)。

問(wèn)了DBA 大佬后,說(shuō)是修改tmpdir參數(shù)即可(默認(rèn)是指向tmp目錄):

熟練的vim my.cnf

在[mysqld]下添加:

tmpdir = /ssd_data2/158mysql/107.sla

重啟mysql實(shí)例

在mysql命令符下查看該參數(shù)目錄是否生效:

那就再執(zhí)行一遍優(yōu)化命令:

成功了,文件也縮小了一個(gè)G。

接下來(lái)我又進(jìn)一步測(cè)試,刪除表里面數(shù)據(jù),只保留10萬(wàn)條數(shù)據(jù);再執(zhí)行optimize命令,并且觀察目錄占用大小情況:

這里值得一提的是:optimize命令執(zhí)行時(shí)間只用了15分鐘,通過(guò)觀察目錄的變化發(fā)現(xiàn)臨時(shí)表大小大概在45G左右。

接下來(lái)是總結(jié):

1)我原以為做一些小小的改動(dòng)(只刪除了10條數(shù)據(jù))會(huì)很快得到實(shí)驗(yàn)的結(jié)果,結(jié)果可以在圖上面看到optimize命令執(zhí)行了一個(gè)半小時(shí);但是后面我再一次測(cè)試發(fā)現(xiàn)只用了15分鐘,可能是服務(wù)器上其他業(yè)務(wù)影響了,時(shí)間上不好下結(jié)論。
這個(gè)命令會(huì)產(chǎn)生鎖表的效應(yīng),所以時(shí)間上需要注意。

2)學(xué)習(xí)知識(shí)點(diǎn):

1、ibd文件為何物,里面是放什么東西的:
上面也說(shuō)到,是放表的元數(shù)據(jù),索引。

2、optimize這個(gè)命令的相關(guān)知識(shí),會(huì)對(duì)數(shù)據(jù)庫(kù)造成什么影響等:
已知有:
執(zhí)行過(guò)程中會(huì)鎖表
會(huì)產(chǎn)生臨時(shí)表,占用一定的空間
會(huì)影響主從延遲
(歡迎留言補(bǔ)充)

3、tmpdir這個(gè)參數(shù):
臨時(shí)表指定存放目錄
可以跟innodb_tmpdir參數(shù)對(duì)比學(xué)習(xí)

4、這里要提一個(gè)參數(shù) “innodb_file_per_table=1”
配置文件里最好把這個(gè)參數(shù)打開(kāi),因?yàn)樯a(chǎn)環(huán)境用的是innoDB的引擎,然后innodb會(huì)默認(rèn)將所有庫(kù)的表數(shù)據(jù)都存儲(chǔ)在一個(gè)共享空間中:ibdata1,這樣不方便我們平時(shí)的優(yōu)化。
該參數(shù)是讓每個(gè)表都會(huì)產(chǎn)生一個(gè)獨(dú)立的ibd文件(也就是數(shù)據(jù)空間)

3)為什么會(huì)產(chǎn)生這樣的事情呢?:

個(gè)人理解:平時(shí)我們刪除數(shù)據(jù)時(shí),會(huì)使得表的ibd文件產(chǎn)生空隙:也就是說(shuō),刪除數(shù)據(jù)之后它會(huì)傻傻的空在哪里,如果沒(méi)有數(shù)據(jù)補(bǔ)進(jìn)來(lái)就會(huì)一直空著;然后重復(fù)這增加,刪除一系列操作之后,該文件隨著時(shí)間的推移變得越來(lái)越大。

目前我所知沒(méi)有特別好的辦法避免這一點(diǎn),不過(guò)定時(shí)優(yōu)化就好;

總結(jié)

到此這篇關(guān)于一次mysql的.ibd文件過(guò)大處理過(guò)程的文章就介紹到這了,更多相關(guān)mysql .ibd文件過(guò)大處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql存儲(chǔ)過(guò)程原理與使用方法詳解

    mysql存儲(chǔ)過(guò)程原理與使用方法詳解

    這篇文章主要介紹了mysql存儲(chǔ)過(guò)程原理與使用方法,結(jié)合實(shí)例形式詳細(xì)分析了mysql存儲(chǔ)過(guò)程的優(yōu)缺點(diǎn)、定義、調(diào)用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-12-12
  • MySQL查詢用戶權(quán)限的方法總結(jié)

    MySQL查詢用戶權(quán)限的方法總結(jié)

    這篇文章主要介紹了MySQL查詢用戶權(quán)限的方法總結(jié)內(nèi)容,需要的朋友們可以參考下。
    2020-03-03
  • MySQL regexp 命令詳解

    MySQL regexp 命令詳解

    REGEXP命令用于在查詢中進(jìn)行正則表達(dá)式匹配,支持多種符號(hào)和語(yǔ)法,如^、$、.、*、+、?、|、[]等,示例展示了如何匹配特定字符、數(shù)字、多個(gè)選項(xiàng)等,使用BINARY關(guān)鍵字可以區(qū)分大小寫,本文介紹MySQL regexp 命令,感興趣的朋友一起看看吧
    2025-03-03
  • 優(yōu)化MySQL Join算法的性能的操作方法

    優(yōu)化MySQL Join算法的性能的操作方法

    本文介紹了優(yōu)化MySQL JOIN算法性能的多種方法,包括索引優(yōu)化、表結(jié)構(gòu)設(shè)計(jì)、查詢語(yǔ)句優(yōu)化和系統(tǒng)配置調(diào)整,通過(guò)合理創(chuàng)建索引、優(yōu)化表結(jié)構(gòu)、選擇合適的驅(qū)動(dòng)表以及調(diào)整相關(guān)系統(tǒng)參數(shù),可以有效提高JOIN操作的性能,感興趣的朋友一起看看吧
    2025-02-02
  • MySQL中主鍵與rowid的使用陷阱總結(jié)

    MySQL中主鍵與rowid的使用陷阱總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于MySQL中主鍵與rowid的使用陷阱,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • MYSQL同步 Slave_IO_Running: No 或者Slave_SQL_Running: No的解決方法[已測(cè)]

    MYSQL同步 Slave_IO_Running: No 或者Slave_SQL_Running: No的解決方法[已測(cè)

    為了服務(wù)器更好的安全特將mysql服務(wù)器同步一下,show slave status\G出現(xiàn)了Slave_IO_Running: No 錯(cuò)誤,特整理了下,方便以后配置
    2011-06-06
  • 深入了解MySQL中的慢查詢

    深入了解MySQL中的慢查詢

    什么是MySQL慢查詢呢?其實(shí)就是查詢的SQL語(yǔ)句耗費(fèi)較長(zhǎng)的時(shí)間。具體耗費(fèi)多久算慢查詢呢?這其實(shí)因人而異,有些公司慢查詢的閾值是100ms,有些的閾值可能是500ms。本文將通過(guò)示例和大家聊聊慢查詢的危害和常用場(chǎng)景,感興趣的可以了解一下
    2022-10-10
  • 深入理解MySQL中的事務(wù)機(jī)制

    深入理解MySQL中的事務(wù)機(jī)制

    這篇文章主要介紹了MySQL中的事務(wù)機(jī)制,事務(wù)機(jī)制在各大MySQL教程中均為重要知識(shí),需要的朋友可以參考下
    2015-06-06
  • MySQL的事件調(diào)度器使用介紹

    MySQL的事件調(diào)度器使用介紹

    這篇文章主要介紹了MySQL的事件調(diào)度器使用介紹,本文講解了事件調(diào)度器的開(kāi)啟、創(chuàng)建、修改、刪除等操作的使用實(shí)例,需要的朋友可以參考下
    2015-06-06
  • MySQL數(shù)據(jù)庫(kù)安裝方法與圖形化管理工具介紹

    MySQL數(shù)據(jù)庫(kù)安裝方法與圖形化管理工具介紹

    這篇文章介紹了MySQL數(shù)據(jù)庫(kù)安裝方法與圖形化管理工具,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05

最新評(píng)論

镇赉县| 晋江市| 琼结县| 玛沁县| 沅江市| 清苑县| 沙田区| 内江市| 铁岭市| 吉木萨尔县| 纳雍县| 屏山县| 长沙县| 梁山县| 宁武县| 衡阳县| 大名县| 芜湖县| 香格里拉县| 元氏县| 河南省| 聂拉木县| 新乡县| 博客| 五指山市| 福建省| 大厂| 景泰县| 汉川市| 迭部县| 辉南县| 河南省| 佛山市| 奉化市| 鄱阳县| 嘉祥县| 潢川县| 丰城市| 平阴县| 开封县| 澜沧|