簡體   English   中英

我應該使用什么將圖像保存在數據庫中

[英]What should I use to save an image in database

我應該用什么來在數據庫中保存圖像。 我必須使用哪種類型在 PHP 和 MySQL 中存儲和檢索圖像。

經驗法則是您不應該將圖像存儲在數據庫中。 Blob 可用,但非常糟糕。

您應該做的是將二進制文件存儲在比數據庫快許多倍的文件系統上,並且在數據庫中只存儲路徑或鏈接或文件名,然后讓應用程序從路徑加載圖像。

這使您可以輕松地為靜態文件實現諸如 cdn 或 san 存儲等內容。 它甚至允許您使用諸如 lighttpd 之類的東西來顯示靜態內容圖像而不是 apache。

https://blogs.oracle.com/manveen/entry/blob_vs_file_system_storage提供了更多信息,但網上有大量關於 blob 缺點的統計數據和數據

使用BLOB數據類型,這意味着二進制大對象

BLOB 可能比文件存儲慢,但復制、備份和恢復單個數據庫文件比管理/維護文件結構中的圖像容易得多。

我還建議將圖像存儲在他們自己的專用數據庫中(將屬性/標簽信息存儲在單獨的數據庫中)。

簡單和優化的選項是將圖像上傳到服務器並將“圖像的 url”字符串存儲在數據庫中。

以防萬一,您只想存儲實際的圖像文件,然后使用 Blob 數據類型。

將圖像存儲在數據庫中是一個非常糟糕的主意。 數據庫決定保存一點信息——而不是圖像或文件。 為此,您有硬盤驅動器。
相反,您應該將圖像保存在磁盤上並將其文件名保存在數據庫中。 像那樣:

$name = uniqid();
file_put_contents($name.".png",$image_data);
mysql_query("INSERT INTO `images` (image) VALUES ('$name.png')") or die(mysql_error()); 

如果您真的堅持將圖像保存在數據庫中,請使用BLOB

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM