2010-08-10 56 views
1

我有一個標準的LAMP服務器,目前有一種方法可以將PDF或JPEG與庫存記錄相連接或上傳。我在1999/2000年設計了這個系統,當然它的規模相當大。包含附件的表接近10GB,這使得數據處理工作有點慢(特別是當我想查詢所有內容並按照文件大小排序以查看大附件的位置時)將附件從MySQL BLOB字段中取出,並存入文件系統

我想「移動'這個附件存儲在MySQL之外,並進入文件系統。我基本上只是想以某種方式存儲文件名的PATH,而不是當前的BLOB字段。

有沒有人或任何人做過類似的事情?如果是這樣,你採取了什麼方法將附件從數據庫中取出並存入文件系統?目前,該應用程序使用PHP,因此我正在考慮編寫一個腳本來迭代每條記錄,並將當前的BLOB數據保存到文件系統。

有關如何最好地完成此任何想法或想法?

非常感謝,

布魯斯

回答

0

目前,該應用程序是在PHP,所以我想編寫一個腳本,通過每一個記錄迭代的,並保存當前BLOB數據的文件系統。

我認爲這是非常多的。將PHP的max_execution_time設置爲一個巨大的值,然後遍歷每條記錄,fwrite()輸出內容 - 除此之外沒有其他更多內容(除非我的問題得到解決)。

成功寫入後,將寫入的文件路徑寫回到新的filepath字段中,並清除BLOB字段的內容(可能在執行CRC32比較後確實確實將內容寫入正確)。

如果文件沒有正確寫入,請不要清除BLOB字段。這樣,您可以恢復崩潰的運行,而無需再次運行每條記錄。

+0

感謝您提供的'max_execution_time'和CRC32提示,Pekka!這是我設計這個時候所要尋找的東西。你回答我正在尋找的東西:-) 如果有人寫了一些有用的東西,那會更好:-) – bgarlock 2010-08-10 14:47:48

相關問題