如何遷移超大資料庫表?

時間 2021-05-11 18:29:02

1樓:

正好最近在做類似的東西,沒有接觸過MSSQL,以下主要是MySQL的經驗,前提均是單錶(雖然基本不可能)

1. 如果可以停機,直接分塊匯出成CSV然後MySQL端LOAD DATA INFILE就好,據說(未驗證)MySQL LOAD DATA的時候是批量匯入後再建立索引,比SQL檔案快的多。

2. 如果不可以停機,如果有自增ID或者insert time等字段,可以根據這個分塊遷移,寫個RANGE即可。

3. 如果沒有這兩個東西還不能停機但是有唯一字段,加個中間層,遷移期間新的寫入請求新舊庫均寫入,查詢還在舊庫。(目前在做的專案就是這類)

4. 如果既沒有時序資訊又不能停機還沒有唯一字段……那還是辭職吧

2樓:嘉慧Lincoln

建議根據對資料處理速度和完整性的不同需求使用不同的軟體。

3樓:mysqlops

有乙個100G+的MSSQL資料要遷移到MySQL。 用SSMS匯出的sql檔案有140G大,遠端的phpMyAdmin根本hold不住。 先存到遠端Linux下以後按行分片,MySQL source直接匯入不識別;或者分片過大時候MySQL has gone away(跑了?

QAQ)。 嘗試用VIM開啟這個檔案編輯一把,貌似...不知道什麼時候才能開啟。

回答:

1.使用MSSQL2MYSQL 開源軟體幫助你遷移;

2.利用MSSQL軟體提供的跨異構資料來源的工具,直接遠端資料寫入到MySQL中;

3.資料到匯出為特殊分隔符的文字資料,再使用LOAD DATA 命令載入;

4樓:Mark Go

100G的SQL我沒遇過,不過之前2G的SQL通過工具我發現都導不了...

最後我的解決方法是自己寫個PHP指令碼

連線ORACLE,MYSQL設定不自動提交,然後邊取出記錄邊插入MYSQL,達到5000筆記錄的時候mysql commit一下,然後繼續。

當然,這可能不是好方法,但是畢竟使用單執行緒的模式去一條條匯出插入出錯率大大降低。

5樓:langqin

按行切分吧,如果做不到,先寫程式在mssql上拆分成多個表,然後分別遷移,最後在mysql上合成。

但有一點:根據經驗,就不應該是一張大表。

大資料營銷是不是資料庫營銷?

趙素衛 資料庫營銷提供的僅僅是資料,不能作為形成決策的依據,大資料營銷是基於多平台的大量資料,依託大資料技術的基礎上,應用於網際網路廣告行業的營銷方式。大資料營銷的核心在於讓網路廣告在合適的時間,通過合適的載體,以合適的方式,投給合適的人。以廣告投放來說,從前期推送廣告給使用者,到後期使用者瀏覽廣告...

關係型資料庫,資料庫表設計,兩個表的連線關係是多對多,連線表的設計除了傳統的設計方案外還有其他設計方案麼?或者說有幾種可能的設計方案。

王璐 你所說的符合正規化的設計肯定是設計的第一步,之後的設計要看業務具體怎麼用這些資料。馬上就能想到的幾點是 未完成的訂單備受關注 已完成的訂單不會有修改。要解決題目中的查詢壓力,簡單的方案是 把未完成單 三月內單 歷史訂單分開儲存。當然對於前端的處理和快取也能有效減少查詢和查詢壓力。 LS的已經回...

大資料是什麼?與資料庫是什麼聯絡?

九月鷹飛 大資料,需要儲存到資料庫中。資料庫中的資料量大了,比如十億 百億條,這就是大資料。資料庫有多種型別,大資料有結構化 非結構化 半結構化,要根據資料型別和資料量等決定選擇用什麼樣的資料庫。比如時序相關的資料,可以用時序資料庫。 加公尺谷大資料老師 在IT技術領域,資料庫技術是重要的支撐性技術...