程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql單文件存儲刪除數據文件容量不會減少的bug與解決方法,mysqlbug

Mysql單文件存儲刪除數據文件容量不會減少的bug與解決方法,mysqlbug

編輯:MySQL綜合教程

Mysql單文件存儲刪除數據文件容量不會減少的bug與解決方法,mysqlbug


MySQL的Bug之一:InnoDB ibdata1 never shrinks after data is removed

問題描述

當innodb引擎使用單個文件進行存儲的時候,當對數據庫中數據進行刪除的時候,文件的大小並不會發生變化,意味著文件將會越來越大並且即使刪除也沒辦法 讓其釋放磁盤的空間。

驗證過程

創建一個測試使用的表,如下創建好t這樣的一個表。

創建簡單的存儲過程來批量的插入數據。

查看開始前的文件的大小

當批量插入接近十萬的數據後

然後進行刪除操作

占用磁盤空間並未減少

解決方案

兩種方式:

1. 先備份後刪除然後進行導入

mysqldump -uxxx -pxxx --all-databases > db.sql 
service mysql stop 
rm ibdata 
rm ×log文件 
service mysql start 
mysql -uxxx -pxxx < db.sql 

2. 把表設置為單表存儲的形式,這樣每個表中的數據單獨存儲,在刪除數據的時候,會隨著數據的刪除而釋放存儲空間。

set global innodb_file_per_table = on 

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved