2012-02-13 48 views
1

我有一個分配給我下面的任務:最佳實踐:傳輸數百萬條目到另一個MySQL數據庫

以當前的數據庫,與數千項的多個表和數百編寫一個腳本,將轉讓大部分這個數據以不同結構的單獨數據庫。

基本上一個新的數據庫已經創建了一個不同的表結構,我需要(在確認所有的數據類型匹配後)編寫一個腳本來將數據複製到正確的表/列中。

最終我想知道如此大規模的數據傳輸是否有人可以提供的任何最佳實踐,首選語言或提示/技巧?

回答

1

首先,我認爲最重要的一點是,您應該不惜一切代價避免編寫將您的數據從生產服務器轉移到另一個的任何腳本。處理您的實時數據進行遷移的潛在危險應該是足夠的原因。

這就是說,我可以建議一些做法,我認爲這可能對這樣的任務有好處。

  1. 從生產服務器獲取所有數據並將其轉儲到完全獨立的devbox。消除原始數據的風險以及對服務器的性能影響。
  2. 在嚴格開發平臺上,我建議儘可能將所有數據從SQL遷移到SQL,而不是用某種中間語言編寫腳本。當然,你的新結構可能完全禁止這種方法,但通常不必擔心將數據從嚴格的,可靠的數據類型轉移到另一種語言(例如,無類型的PHP或類型嚴格的.net)回到一個數據庫正在增加一些使你的任務複雜化的步驟,增加計算時間和潛在的未捕獲的損失。
  3. 花費盡可能多的時間來驗證新設計模式的智能,因爲您有時間和權力這樣做。除非你的手緊緊相連,否則試着想象這些改變是否是 - 事實上 - 改進,並且不可避免的查詢重寫會提高效率和可讀性。

我確定還有很多其他的東西需要注意,但我希望這些對於幫助您從一個模式轉移到下一個有足夠的幫助。不要讓遠程服務器陷入困境,如果本地服務器是合理的,然後導入。把事情簡單化!