2012-09-23 28 views
2

我開發了一個小型的swing桌面應用程序。這個應用程序需要來自其他數據庫的數據,所以爲此我創建了一個使用java的小進程,它允許從遠程數據庫獲取信息(使用jdbc)並將其複製(使用jpa)到本地數據庫,問題是這樣過程花費很多時間。有沒有其他的方式來做到這一點,以加快這項任務?將數據從mysql數據庫複製到使用java的其他mysql數據庫

如果我不清楚,請讓我知道,我不是母語的人。

感謝

迭戈

+1

嗨迭戈的問題是廣泛的,儘量給我們更多的信息。您能回答這個問題:遠程數據庫有多大,MB的大小,表的數量,完成導入需要多少時間(秒)以及可以接受的時間,遠程站點和遠程站點之間的連接速度有多快本地主機? – Igor

+0

你是否也在控制遠程數據庫,如果是的話,他們都在一個安全的網絡。速度問題主要是將數據吸收到客戶端,然後將其推送到本地服務器。你可以做很多事來加快速度。 –

+0

謝謝,爲答案。我沒有這方面的經驗。 –

回答

1

一個很好的選擇是使用複製功能在MySQL。有關更多信息,請參閱MySQL手冊here

+0

感謝您的幫助。我沒有使用複製,因爲表沒有相同的結構,本地表至少有4列。 –

+0

然後,我認爲你應該嘗試另一個選項,即「聯邦存儲引擎」。它是一種存儲引擎,用於訪問遠程數據庫表中的數據而不是本地表中的數據。請看這裏[http://dev.mysql.com/doc/refman/5.0/en/federated-storage-engine.html] – RGO

0

JPA不太適合這裏,因爲對象關係映射代價高昂,這是批量數據傳輸。在這裏你可能也不需要數據庫複製

也許backup是一個解決方案:列出了幾種不同的方法。

通常,還可以在cron任務上執行mysqldump(例如在一個表上)來壓縮轉儲並檢索它。