久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

mysql收縮空間的問題

瀏覽:129日期:2022-06-21 13:49:25

問題描述

今天轉移數據庫(從一個數據庫到另一個數據庫),轉移了一部分之后發現硬盤快滿了,于是就把就舊的數據庫里已經轉移完成的表刪除了。我是先TRUNCATE table_name,發現空間沒有釋放,又DROP TABLE table_name,發現空間還是沒有釋放。

我去網上搜了一下,發現收縮空間的命令都是針對表的,比如OPTIMIZE TABLE table_name。我想請問一下,還有別的辦法收縮空間嗎?

問題解答

回答1:

InnoDB引擎的特性就是這樣的。占用空間的文件有bin-log文件(二進制日志)和ibdata1(數據文件,表空間就是在這里的)還有一些其他日志(ib_logfile0)redo-log和undo-log。

你執行TRUNCATE掉了數據,并不會對上面這些文件大小產生影響(減小),反而會增大,要紀錄你這個TRUNCATE操作。數據既使被刪除了,ibdata1空間里也不會被刪除的,因為要刪除里面的數據,要移動大量磁盤空間。innodb只是標志那些數據頁是可以被再次使用的,并沒有刪除這塊空間。通常mysql一啟動,會會占用幾個G的ibdata1 ibdata2。先分配一塊大的磁盤,再慢慢使用,數據在物理上連續(效率高)。避免一直分配磁盤空間,產生很多碎片。

除非你把整個data數據目錄目錄清除(相當于重裝mysql),再重新導入數據。

磁盤是很便宜,掛幾塊大磁盤就行了。磁盤都沒有,玩什么數據庫。

回答2:

不了解。但是如果買塊硬盤就能解決問題其實根本沒必要去想其它方案了,投入的綜合成本更高,而且發生了這種情況本身就說明你們確實要考慮磁盤空間問題了,比如磁盤陣列,數據表拆分,是否需要redis/memcached來幫助數據庫減壓等,這是更重要的事情。

回答3:

推薦一下,之前我也遇到過,后來處理了,寫過博客http://astarblog.cn/index.php/2016/04/27/339.html (這算廣告嗎?)

相關文章:
主站蜘蛛池模板: 沅陵县| 顺昌县| 鹤庆县| 子洲县| 博客| 丰宁| 略阳县| 铜川市| 饶阳县| 镇赉县| 宜良县| 秭归县| 新宾| 新密市| 武山县| 隆安县| 梁平县| 温宿县| 上犹县| 施甸县| 陇南市| 沁水县| 光山县| 邵东县| 梧州市| 青川县| 双流县| 民权县| 凤凰县| 江北区| 庐江县| 大邑县| 宁海县| 亳州市| 渭源县| 洞口县| 阿鲁科尔沁旗| 谢通门县| 隆回县| 泾源县| 襄城县|