單就提取檔案而言來說。
不會有哪個比較快比較好。
但真硬要說的話,就理論上來說一定是直接讀取比較快。
但你有說到可能會需要用到搜尋。
你該考量到的並不是讀取檔案的問題。
而是資源比對的問題。
這就難評斷了。
主要還是要看你的搜尋的來源為何,是否有固定數。
是否需要用到全文搜尋...
但就將搜尋來說,使用mysql一定比較快了。
但這也是指當檔嬣比較多的情況下。
假如是MYSQL檔案裡面有PDF黨Word檔,SQL語法可以找出裡面的文字嗎
正常來說不太可能。
word的話可能還要機會,只是要做特別的處理很麻煩。
一般的做法是會將內容另外存,檔案的部份則是只存路徑。
但我還是想反問一下,是什麼情況需要用到用檔案內容來做搜尋?
這太可怕了說。
若是把word和pdf轉成文字檔,再把文字檔存入mysql,
那麼,用 mysql 比較快。
以前我在 linux 底下有操作過 pdf 轉 txt 。
pdftotext -layout input.pdf output.txt
word 轉 text 也有指令,剛試了一下,效果也不錯,轉出來的文字很清楚。
https://stackoverflow.com/questions/6510272/convert-doc-to-txt-via-commandline
所以,如果有搜尋 word 和 pdf 之需求者,或許利用指令轉一轉存入 mysql , 也是可行?
假如要由1000個 word 或 pdf 中找出一個關鍵字,那麼,找欄位肯定比一個一個開檔來找要快得多。
全文檢索別隨便自己幹啊, 人家已經發明好輪子了:
ElasticSearch VS. Solr VS. Sphinx:最好的開源搜尋引擎比較
自己開發存成檔案,然後實作搜尋,排序,最後得到一個資料庫.
過程是很棒的,在夕陽下的奔跑,會是你逝去的青春,永難忘懷的美好回憶.
你可以試試讓你的NAS裡某個資料夾,放個20萬個檔案,看看開機及搜尋會不會開變超慢
但在SQL裡放20萬筆BLOB,我相信不會慢,但重點來了,千萬別放在主表裡,最好做個BLOB的關連表,省得你在維護主表時會開起來特別久