2012-10-11 189 views
0

我正在通過PHP腳本將數據存儲到MySql數據庫。數據庫沒有被存儲到磁盤,但查詢被存儲在內存中的數據庫中。當我運行mysqldump時,文件大小約爲130M,但是當我檢查位於「/ var/lib/mysql/db_name」中的文件大小時,大小約爲80K。我使用的引擎是InnoDB。MySql不保存到磁盤

回答

0

你怎麼知道它沒有存儲到磁盤?

如果您根據這些尺寸進行評估,您不可能不比較相同的東西。

db本身就是純數據。

mysqldump具有所有冗長的實際創建語句,可能會更長。

例如

Data: 1,5000,23,300 4 bytes. 

Create statements from backup: 
insert into summary_categories(category_sum_product) values (1); 
insert into summary_categories(category_sum_product) values (5000); 
insert into summary_categories(category_sum_product) values (12); 
insert into summary_categories(category_sum_product) values (300); 
= 262 characters/bytes 
+0

我正在根據db目錄的大小做出這個假設。它只有80K,而mysqldump文件是130M。兩者之間有巨大的差異。我所說的目錄位於「/ var/lib/mysql」中。我有另一個數據庫存儲與其他數據庫相同的東西,目錄的大小更大。儘管它包含的數據較少。 – user1067872

+0

更新:10,000個記錄被添加並且db文件大小仍然在80k。 – user1067872

0

有一種方法來檢查它是否存儲到磁盤或內存。重新啓動機器,如果數據仍然存在,它將存儲在磁盤上(情況就是如此)。

因此進一步測試使用此查詢看到的數據存儲在何處:

SHOW VARIABLES WHERE variable_name LIKE '%datadir%' 

那麼該目錄內很可能會與數據庫名稱的文件夾。用你的表名檢查文件夾內的文件。有一個用於定義(table.frm)。這可能是你看到的可以是80K的那個,還有另外一個(tablename.ibd)存放數據。