2011-06-02 42 views
1

最近,我寫了一個python代碼來插入HTML文本到表中。在我的代碼編寫大約20萬個html頁面後,我可以使用select來檢索所有這些數據。但是,我發現MySQL服務器不會將任何數據寫入文件。我檢查內存使用情況,發現mysqld.exe程序消耗的內存超過1.5GB。我搜索整個磁盤的表名,但我只找到了一個與我的表名相關的9KB文件。順便說一下,我也檢查了mysql.ini文件。路徑配置是正確的。然後,我使用mysqldump來備份該表。這個命令給了我超過7GB的sql文件。我再次檢查並發現我的datadir文件夾中有20GB文件ibdata。這個文件是什麼意思?爲什麼沒有與我的表相關的文件? MySQL只是將數據存儲在內存中嗎?爲什麼MySQL服務器不會將表寫入文件?

+0

你使用了什麼樣的桌子? Mysql支持臨時表和僅在內存中的表類型,以及其他數據庫中的鏈接表(聯合表類型)。通常MySQL會在系統出現故障時儘快將數據提交到磁盤。如果200,000行之後沒有任何內容在磁盤上,關閉你的機器將丟失數據。 – 2011-06-02 18:27:52

回答

0

也許你在使用InnoDB,但沒有啓用innodb_file_per_table,所以一切都被寫入一個文件。

1

運行SHOW TABLE STATUS並檢查存儲引擎值。它可能會使用MEMORY,雖然如果是這樣並且您不知道(因爲您必須明確設置),我會感到驚訝。

相關問題