2011-03-11 20 views
6

我可以將數據文件(例如txt文件)存儲到MySql服務器嗎?如果可以,如何存儲它們?如何存儲.txt文件MySQL數據庫?

+0

數據庫不適用於存儲文本文件,這就是您的文件系統的用途。 – animuson 2011-03-11 21:50:51

+0

當然,如果您在恰好運行MySQL的服務器上擁有文件寫入權限,則可以向其寫入文本文件。不過,我不認爲這就是你的意思。你想達到什麼目的? – Andrew 2011-03-11 21:51:15

+0

什麼樣的文本文件? – 2011-03-11 21:51:17

回答

12

您可以使用LOAD DATA INFILE來讀取文件的內容並將其以結構化格式存儲在數據庫的表中。

這比讀取和解析客戶端上的文件然後使用多個INSERT語句要快得多。

例子:

LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table; 
+1

這很酷,不知道mysql有這個能力。 :) +1 – Michael 2011-03-11 21:57:55

+0

這個答案效果很好...感謝馬克Byers – Rida 2011-03-13 08:53:16

7

當然可以,但你可能會更好過將它們存儲在文件系統上,並存儲在數據庫文件的路徑。

有幾個SO帖子討論這個:

+0

我知道文件系統可以做到這一點,但我希望該文件可以被網絡上的所有用戶訪問... ,我想避免查詢數據庫服務器每隔0。4秒超過30分鐘......這可能是集中式數據庫最糟糕的解決方案 – Rida 2011-03-11 22:01:05

1

當然可以。 我建議從文件中讀取數據,然後將其保存在數據庫中,我會在文本字段中說。

您可以使用類似this來獲取文件的內容:

$file = file_get_contents('./yourfile.txt'); 

然後將其插入

Insert into myTable VALUES (mytextfile = $file) 
0

多少文字,我們談論的嗎?如果沒有那麼多文本,則可以只將文件的內容存儲在數據庫中。

您也可以將文件本身存儲爲BLOB。 http://dev.mysql.com/doc/refman/5.5/en/blob.html

如果你要處理很多文件,你最好將文件存儲在數據庫中的文件路徑上。

相關問題