我們使用MySQL(innodb)來存儲我們的數據。 我們有集成測試來啓動mysql數據庫(通過docker容器)並連接到數據庫。我們使用MyISAM作爲測試數據庫(原因解釋如下)。如何快速克隆mysql innodb數據庫
我們這樣做的方式是,第一個測試會將sql模式加載到模板DB中,隨後的測試將簡單地使用文件副本克隆數據庫。由於MyISAM可以很好地處理文件複製,因此我們只需將整個數據庫目錄複製到新的目錄中,並且每次測試都有一個新的克隆數據庫。這一直運行良好,特別是我們的集成測試在幾秒鐘內運行。
然而,當我們添加更多的測試中,我們不斷髮現由於InnoDB和MyISAM數據(索引的大小,外鍵約束的名字等等)之間的差異問題。我們希望移動測試數據庫以使用InnoDB,但希望保持快速的克隆操作。與現在需要的100ms相比,做mysqldump和恢復需要30多秒。
我的問題是,有沒有辦法克隆InnoDB超級快?
「既然MyISAM的正常工作與文件複製......」的MyISAM是一個非常原始的數據庫引擎,如果你在MyISAM數據模式下測試您的應用程序的InnoDB,你還不如在所有的測試。這些引擎的行爲方式明顯不同。 – tadman