2011-03-17 79 views
4

鑑於我必須在短時間內轉儲大量插入,設法將所有記錄轉儲到文件,然後通過加載數據infile mysql的句子加載它們。這工作正常,但現在我壓縮更多的值到blob字段,以減少插入。問題是,我不能找到一種方法將Blob字段轉儲到文件中,以便在加載數據時插入正確的值。我嘗試過不同的方式,但沒有快樂的結局,並希望避免逐個插入。用Blob字段加載數據infile

有沒有人知道如何正確地做到這一點?

+0

如何使blob成爲一個csv類型的實體,在字段和字段之間用逗號和引號括起來。這可以工作嗎? – 2011-03-17 20:36:34

+0

現在我想起了它,你怎麼能比從正常的文本文件加載數據infile更快?我相信,即使您將所有數據都集成到一個blob中,也必須在服務器上執行相同數量的插入(更新更新)。 – 2011-03-17 20:44:28

+0

我試過了,但沒有正確插入blob字段。使用* load data infile插入行*它應該比一個一個地執行更高效。目前我正在使用插入像「INSERT INTO _TABLE_ VALUES(),(),(),..」,這比單獨插入每一個更好。 – Pabloks 2011-03-17 21:59:02

回答

7

將blob數據的HEX()字符串存儲在文件中。

對於你的SQL,使用SET子句,例如,

LOAD DATA INFILE 'path.txt' INTO TABLE MYTABLE (列1,列2,@ hexColumn3) SET欄3 = UNHEX(@ hexColumn3);

+0

它的工作原理!非常感謝:D – 9nix00 2011-08-22 05:29:48