對於圖片的儲存,是路徑還是二進位在資料庫?談談各自的優劣

來源:互聯網
上載者:User
或許這個問題一拋出來就有人立刻說存路徑。
但是想想這個問題,如果存路徑的話,那麼無論在db中還是cache中只能儲存一個路徑,調用的時候就屬於檔案調用。在項目圖片特別多的時候,影響不是很大嗎?
而如果存二進位的話,可以直接把圖片資料轉成二進位存在db和cache中。取的時候直接轉就好
那麼究竟哪個比較好呢?為什麼人們都說存路徑呢?因為二進位轉換演算法特別消耗嗎?

回複內容:

或許這個問題一拋出來就有人立刻說存路徑。
但是想想這個問題,如果存路徑的話,那麼無論在db中還是cache中只能儲存一個路徑,調用的時候就屬於檔案調用。在項目圖片特別多的時候,影響不是很大嗎?
而如果存二進位的話,可以直接把圖片資料轉成二進位存在db和cache中。取的時候直接轉就好
那麼究竟哪個比較好呢?為什麼人們都說存路徑呢?因為二進位轉換演算法特別消耗嗎?

1.資料庫不光有儲存,還有查詢,我想你應該不會去查詢那些位元據吧,在資料庫上存入一個很大的欄位非常影響資料庫效能開銷。
2.資料庫底層也是檔案儲存體,將二進位檔案儲存到資料庫比直接放到檔案系統上會有更多計算或者io。(原答案是更多的io,考慮到資料庫儲存時的資料壓縮和最佳化,更改原答案。)
3.圖片檔案作為靜態檔案,在web伺服器以及其他應用在讀取時基本上是io操作,放在資料庫中則需要額外的計算。
4.如果你覺得檔案很多,你可以嘗試分檔案夾存放,比如按首字母,按使用者id,或者使用cdn,這些都是比放在資料庫更好的方法。

http://www.cnblogs.com/wangtao_20/p/3440570.html

http://www.oschina.net/question/253614_78251

你的理解沒錯,檔案數量較多的時候,存在預設的檔案系統中就會顯著影響速度,這主要是系統預設的檔案系統並不是針對大數量檔案儲存體而設計的,沒有路徑索引,檔案一多效率就指數級降低。
但也並不能和其他資料一樣單純的存入資料庫,最好是將檔案資料庫單獨存放,單獨處理,因為檔案請求一般都是單純的IO操作,不需要複雜的邏輯和程式處理,最好單獨開闢通道,讓請求繞過伺服器程式,減少伺服器程式的負擔。
另外的資料庫選擇上,可以考慮專門為檔案而設計的資料庫,如mongodb的gridfs。

資料庫多跑個指標和拓展記憶體空間!何況一個伺服器應用需要考慮平衡匯流排和IO!檔案儲存體相對成本更低,包括開發成本和拓展成本!

“在項目圖片特別多的時候”,資料庫查詢應該會成為瓶頸吧。如果真的特別多,一般會放在次層網域下,與主站隔離,或者使用第三方服務。
存URL擴充性什麼的更強一點,包括審核,備份,使用第三方服務,都會容易一點。

boss說,小王,有關部門說我們的圖片有不健康的,你給咱查查。存資料庫就需要費很大勁。
boss說,小王,咱們要擴充幾台伺服器,你把圖片這塊給咱整整。存資料庫就需要費很大勁。
boss說,小王,咱和七牛/又拍有合作了,把咱的圖片放他們那。存資料庫就需要費很大勁。

以上個人看法。

304 Not modified,這個理由足夠強大了吧?如果存放在資料庫裡你怎麼證明呢?額外再加一個version,如同/getfile.php?key=dassafs23fdsa&v=20150109231820嗎?但是不可避免的這需要額外的資料庫查詢才能校正吧?

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.