2011-10-14 70 views
1

我有一個腳本,需要將數據添加到在mysql數據文件夾中創建的文件夾,然後以某種方式強制mysql服務器重新加載數據,以便數據庫可靠地顯示出來。我正在使用system調用/etc/init.d/mysql腳本來重新啓動服務器,但這很慢,我無法在mysql中找到任何可以通過某種查詢重新加載數據庫的操作。我只是想知道是否有如何做到這一點稍微快一點?在Perl中重新加載mysql數據庫的最快方法

+0

也許配置重新加載將工作,按照http://stackoverflow.com/questions/917865/how-do-you-refresh-the-mysql-configuration-file-without-restarting – Hugh

回答

1

這取決於您正在使用的存儲引擎。

MyISAM表將在MySQL下一次觸及表格時自動重新加載(顯然,您需要確保.MYI,.MYD和.frm文件是一致的)。

InnoDB稍微複雜一點,它取決於它是否是傳統配置,所有表在同一個表空間中,或者如果您使用的是innodb_file_per_table。對於前者,你幾乎必須重新啓動服務器。使用file-per-table,您可以複製單個.ibd文件,但是必須使用ALTER TABLE語句來導入該表空間。

有關在不重新啓動服務器的情況下處理個別.ibd文件的信息,請參閱here

This page對於瞭解如何將InnoDB數據從一個地方移動到另一個地方也很有用。

+0

同意,這OP不'不想重啓整個系統來做到這一點,而且perl與此無關。 – hpavc

0

你是什麼意思'很慢'?

你可以做分貝轉儲/負載在一個名爲orginal_db_name_temp,重命名original DB,然後重命名orginal_db_name_temporginal_db_name - 那麼你將有你的新的數據庫到位。

但是,我不知道用哪種方法更快 - 因爲轉儲&加載往返將比文件複製慢。但重命名數據庫可能會比重啓服務器更快

相關問題