2011-04-20 79 views
0

可能重複:
MySQL - storing images in a database??存儲圖像的網頁

我正在爲我的網頁的簡介系統上,但是我想知道什麼來存儲圖像的最佳方式。

我已閱讀關於在MySQL使用BLOB第一種方法。第二,我打算如何做到這一點,首先,我會從上傳腳本獲取圖像,然後給圖片一個id(md5),然後重命名並將圖片移動到名爲「md5」.jpg的文件夾中

我在想,最好的選擇是什麼。

+8

嘆息...這已被問及回答約50 kajillion gazillion時間在這個網站上... – 2011-04-20 16:13:58

+0

我試過尋找這個,也許你可以鏈接我也是以前的問題? – aaaa 2011-04-20 16:16:26

+0

你試圖搜索什麼查詢? – 2011-04-20 16:17:32

回答

3

我已經看到這個問題之前彈出,普遍接受的答案是將您的圖像存儲在一個文件夾中,然後將該URL存儲在數據庫中。我認爲使用BLOB將圖像存儲在數據庫在技術上是可行的,但從我在線閱讀的文檔和共識中,這不是一個理想的情況。

數據庫往往適用於數字,字符串和數據文件。

以下是關於這個網站你問這個問題的一些鏈接:

Storing images on a database

Storing Images in DB - Yea or Nay?

+0

數據庫可以很好地處理data _files_? – 2011-04-21 18:18:23

+0

@Nicklamort - 是的,這是BLOB SQL數據類型是什麼(二進制大對象)這裏是一個有趣的描述的鏈接:[鏈接] http://searchsqlserver.techtarget.com/definition/BLOB – hypervisor666 2011-04-23 18:35:19

+0

啊,我明白了。好男人+1 = P – 2011-04-25 16:24:52

0

都很好。但我一直選擇使用實際的文件給圖像一個id。這是因爲你的服務器和php必須爲blob做更多的工作。

1

Choosing data type for MySQL?

MySQL是不能與任何 數據大於 max_allowed_pa​​cket個工作(默認值:1M)在 大小,除非你在 服務器端構建複雜 和內存激烈的解決方法。這進一步限制了 可以使用類似TEXT/BLOB的 類型進行的操作,並且通常會使 LARGETEXT/LARGEBLOB類型在 默認配置中無用。

所以小心你的斑點我喜歡把圖像存儲在硬盤上和數據庫中的路徑/ ID。存儲在數據庫中的優點非常小,並且速度可能會變慢。

0

最好的辦法可能是實際的文件存儲在網絡/文件服務器上,並且只存儲鏈接到數據庫中該文件。這可以防止數據庫服務器因不必要的繁忙工作而陷入困境。

0

數據庫存儲可以有一定的優勢,常常被遺忘。

  • 您可以將您的圖像與您的數據庫一起備份,不需要此文件系統備份。

  • 當您的網站獲得交通擁擠

當然

它不適合,如果你有大量的圖片,可能是更容易的規模。如用戶貢獻的內容等

,但如果你有一點點的報紙網站不具有許多文章在網上,可以完美專賣店縮略圖在數據庫中,在複製的奴隸建立自己的系統。

但是...說實話:

店您在Amazon S3上的圖像。簡單的API,冗餘,高可用性和負載均衡的存儲爲便宜。

+0

我總是喜歡沒有評論的downvotes。 – 2011-04-20 16:27:11

+0

我也很好奇CSS和js文件。 pdf,swf和xls等也被計算在內。將整個站點內容存儲在數據庫中以使文件系統備份真的變得不必要了嗎?他們的文件系統備份是否邪惡? – 2011-04-20 16:28:41

+0

你需要照顧,監視,編程和維護的另一件事。如果你只是有圖像(如問題中所述),並且沒有太多(如我的答案中所述),它可能更容易。我從來沒有使用過這個字,並給出了一個有效的例子。想象一下你有一個只有文本爲基礎的大文章的網站。現在你想要一個小圖像在Facebook上作爲預覽顯示。你是否真的想爲它設置一個filesytem解決方案? – 2011-04-20 16:33:51

0

我建議保存爲普通靜態文件。然後將它們的文件名存儲在數據庫中。您可以提取匹配的文件名和file_get_contents圖像數據或直接鏈接到實際圖像文件。

不要將圖像數據本身存儲在數據庫中。