大型網站都是如何處理圖片? 存於資料庫? 還是磁碟路徑?

請問......

最近在寫網頁...煩惱要把圖片直接儲存於硬碟路徑下,還是該把圖片儲存於資料庫呢?

我想說如果是儲存在檔案路徑下,可能安全性比較差,如果使用者上傳圖片本身夾帶木馬將會直接執行....但是如果是在資料庫可能就比較好一點....

但是效能呢?一般路徑會比資料庫存取效能好吧...?

以長遠的遠見來說... 2 種到底哪一個比較好....? ( 圖片量超多 )

像是GOOGLE和YAHOO都是如何處理圖片呢?

這問題煩惱有點久了= =|||

謝謝...

Update:

所以?大型網站都是放在磁碟機?

圖片檔應該不可能放在RAM吧...資料檔我之前有看過....

但是放在磁碟機...也還在在新增一筆資料路徑到資料庫....還會有中木馬危險 (我圖片是使用者上傳)....也不好管理......但是優點是效率高...

資料庫是維護性高安全性高...但是效能不好?

也就是 效能 跟 維護安全 之間的決策?

所以這個世界沒有效能好..又..維護與安全性高的方案是嗎?

我就是這裡不懂= =|||

不過我之前有想過把使用者上傳的圖片全部加入到zip壓縮檔...這樣...可能比較安全...效率就不知...

3 Answers

Rating
  • 其威
    Lv 7
    10 years ago
    Favorite Answer

    1. 如果你的圖片是純粹 static 資料 (寫的時候就確定會有, 不允許程式新增、修改、刪除... 等動作), 應該變成普通的檔案 (例如論壇的 logo 還有使用到的圖片)

    2. 如果你的圖片是 user 上傳的 (例如論壇中個人資訊的大頭照), 那可以放在資料庫方便管理.

    3. yahoo 不知道, 但是 google 幾乎所有資料都是放在 ram 裡的...

    2011-04-21 21:59:26 補充:

    把 binary blob 存在資料庫, 有以下幾個 overhead

    1. 資料庫本身的 overhead (這個很小, 幾乎可以忽略不計)

    2. 網頁程式語言 (如 php/asp/jsp...) 的 overhead (這個會比較大)

    3. web 伺服器的 overhead (跟你使用的 API 有關)

    如果存成檔案, 那就只是從硬碟抓個檔案丟回網路, overhead 當然是最低的.

    2011-04-21 22:05:32 補充:

    你有裝防毒軟體並且時常更新就不太容易中木馬.

    如果真的怕, 可以取消檔案的執行權限.

    「安全高、效能好、售價低」這三個東西一向是任選其二的...

    2011-04-21 22:07:06 補充:

    google 所有快取資料都放在記憶體.

    之前看到的資料是, google 的伺服器是五萬多台 x86 組成的, 其中大部分都是 ram 插滿沒硬碟.

    現在不知道成長到幾台了...

  • 10 years ago

    可以把路徑弄成定時隨機變換,

    用的時候再作PHP檔名及路徑還原即可,

    再加個SSL可能會更安全。

    個人淺見...

  • ㄚ旺
    Lv 5
    10 years ago

    資料庫存檔案路徑即可.把圖片放到資料庫中.會LAG到死為止...除非你的網站沒啥人在登入.

Still have questions? Get your answers by asking now.