国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

mysql中如何優(yōu)化表釋放表空間

瀏覽:26日期:2023-02-18 16:43:50
目錄
  • mysql優(yōu)化表釋放表空間
  • mysql空間釋放
    • 查詢占用空間大小
    • 清理碎片
  • 總結(jié)

    mysql優(yōu)化表釋放表空間

    方法一:optimize table table_name

    這是我們經(jīng)常見(jiàn)到的方法,這里就不在過(guò)多介紹。

    方法二:alter table table_name engine=engine_name

    該方法通常用于切換表的引擎,例如MyISAM轉(zhuǎn)為InnoDB,但是同樣適用于釋放表空間,只不過(guò)切換后的引擎和原來(lái)的engine相同罷了。

    注意事項(xiàng)

    1.這兩種方式都適用于我們常用的表,myisam和innodb。

    2.優(yōu)化表的時(shí)候會(huì)鎖表,數(shù)據(jù)表越大,耗時(shí)越長(zhǎng),因此不要在網(wǎng)站忙時(shí)進(jìn)行表優(yōu)化。

    mysql空間釋放

    今天還原了一個(gè)數(shù)據(jù)庫(kù)。發(fā)現(xiàn)數(shù)據(jù)量有數(shù)十GB,想著看看哪些表的數(shù)據(jù)量多,于是查詢了下。數(shù)據(jù)還真不少。3000多萬(wàn)行,這兒一張表居然有近1400萬(wàn)數(shù)據(jù)。....慚愧。以前沒(méi)做什么處理。

    USE information_schema; #?使用數(shù)據(jù)庫(kù)元數(shù)據(jù);SELECT table_name,table_rows FROM TABLES WHERE table_schema = "tjpro" order by table_rows desc; #查詢表名和表行數(shù),數(shù)據(jù)庫(kù)為tjpro?SELECT sum(table_rows) FROM tables WHERE table_schema = "tjpro"; #統(tǒng)計(jì)行數(shù)SELECT table_name,table_rows FROM tables WHERE table_schema = "tjpro" order by table_rows desc limit 100; #查詢最多行數(shù)的表前100

    使用delete刪除mysql數(shù)據(jù)的時(shí)候,mysql并沒(méi)有把數(shù)據(jù)文件刪除,而是將數(shù)據(jù)文件的標(biāo)識(shí)位刪除,沒(méi)有整理文件,因此不會(huì)徹底釋放空間。被刪除的數(shù)據(jù)將會(huì)被保存在一個(gè)鏈接清單中,當(dāng)有新數(shù)據(jù)寫(xiě)入的時(shí)候,mysql會(huì)利用這些已刪除的空間再寫(xiě)入。即,刪除操作會(huì)帶來(lái)一些數(shù)據(jù)碎片,正是這些碎片在占用硬盤空間。 -- 引自mysql

    如何整理,清理這些空間呢,請(qǐng)往下看。

    查詢占用空間大小

    這時(shí)候,我刪除了數(shù)據(jù)最多的mis_system_data_remind_mas 表(測(cè)試庫(kù)喲)之后。我再次查詢?cè)摫碚加玫目臻g大小。

    SELECT TABLE_NAME, (DATA_LENGTH+INDEX_LENGTH)/1048576, TABLE_ROWS FROM information_schema.tables WHERE TABLE_SCHEMA="dbname" AND TABLE_NAME="tablename(你的表名)";

    默認(rèn)是M為單位。第二欄。約為2.8個(gè)GB大小。

    • 然后清理一下。使用:OPTIMIZE TABLE

    清理碎片

    官方推薦使用 OPTIMIZE TABLE 命令來(lái)優(yōu)化表,該命令會(huì)重新利用未使用的空間,并整理數(shù)據(jù)文件的碎片。

    等待的時(shí)間有點(diǎn)長(zhǎng)。等完成后,再次查詢空間:

    SELECT TABLE_NAME, (DATA_LENGTH+INDEX_LENGTH)/1048576, TABLE_ROWS FROM information_schema.tables WHERE TABLE_SCHEMA="dbname" AND TABLE_NAME="tablename(你的表名)";

    可以看到,釋放的空間約為2.8GB。

    總結(jié)

    以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持。

    標(biāo)簽: MySQL
    主站蜘蛛池模板: 正定县| 永济市| 尉犁县| 兰考县| 陵水| 林甸县| 桂东县| 辽阳县| 商河县| 保康县| 荆门市| 如东县| 渝北区| 肥东县| 棋牌| 北海市| 五台县| 保康县| 涞水县| 兰西县| 三门峡市| 萝北县| 浏阳市| 光泽县| 长葛市| 稷山县| 曲松县| 和政县| 丹巴县| 嘉荫县| 泌阳县| 吐鲁番市| 宜阳县| 上高县| 张掖市| 襄汾县| 象山县| 项城市| 白朗县| 方正县| 柘荣县|