當前位置:成語大全網 - 書法字典 - MySqlibdata1文件太大,如何縮小?

MySqlibdata1文件太大,如何縮小?

MySql ibdata1文件太大。如何減少MySql innodb?如果是* * *表空間,ibdata1文件越來越大,達到30 g以上,清空壹些無用的表:truncate table xxx然後優化表xxx因為對* * *表空間不起作用,所以不起作用。Mysql ibdata1存儲數據、索引等。是MySQL。

MySql ibdata1文件太大。怎麽減?

如果MySql innodb是* * *表空間,那麽ibdata1的文件越來越大,達到30 g以上,壹些無用的表被清空:

截斷表xxx

然後優化表xxx沒有影響

因為它對* * *表空間不起作用。

Mysql ibdata1存儲數據、索引等。,這是MySQL最重要的數據。

如果不單獨存儲數據,這個文件的大小很容易增大到g,甚至幾十g,對於某些應用來說,不是很適合。因此,這個文件應該減少。

無法自動收縮,必須導出數據,刪除ibdata1,然後再導入數據,比較麻煩,需要為每個表換壹個單獨的文件。

解決方法:數據文件單獨存儲(如何將共享表空間改為每個表獨立的表空間文件)。

步驟如下:

1)備份數據庫

從命令行輸入MySQL Server 5.0\bin。

備份所有數據庫並執行命令。

d:\ & gt;MySQL dump-q-umysql-PP assword-add-drop-table-all-databases & gt;c:/all.sql

在此步驟之後,停止數據庫服務。

2)找到my.ini或my.cnf文件。

在linux下執行。/mysqld-verbose-help | grep-a 1 '默認選項'

將會出現類似的顯示:

默認選項按給定順序從以下文件中讀取:

/etc/my . CNF ~/. my . CNF/usr/local/service/MySQL 3306/etc/my . CNF

Windows環境可以:

mysqld-verbose-help & gt;mysqlhelp.txt

記事本mysqlhelp.txt

在裏面尋找默認選項,可以看到尋找my.ini的順序找到真正的目錄。

3)修改mysql配置文件

打開my.ini或my.cnf文件。

在[mysqld]下添加以下配置

innodb_file_per_table=1

要驗證配置是否有效,可以重啟mysql並執行。

顯示變量,如“%per_table%”

查看innodb_file_per_table變量是否打開。

4)刪除原始數據文件。

刪除原來的ibdata1文件和日誌文件ib_logfile*,刪除數據目錄下的應用數據庫文件夾(mysql文件夾不刪除)。

5)恢復數據庫

啟動數據庫服務

從命令行輸入MySQL Server 5.0\bin。

恢復所有數據庫並執行命令mysql -uusername -pyourpassword。

經過以上步驟,我們可以看到新的ibdata1文件只有幾十米,數據和索引都變成了單個表的小ibd文件,在對應數據庫的文件夾下。