Mysql

將電子商務商店中的產品圖像作為單獨的表與作為產品表的列實現的性能?

  • November 12, 2021

我正在 Django 中創建一個電子商務商店,目前正在嘗試在將產品圖像實現為它們自己的實體然後通過外鍵連結到產品或將圖像欄位作為產品實體中的屬性之間做出決定。

在我看到的這個問題的答案中,大多數人建議為圖像實現一個單獨的表,我更喜歡這樣做,因為這樣我就不會限制我可以添加到產品中的圖像數量。

然而,我擔心的是,對於使用我的網站(即我的產品列表頁面)的客戶來說,這是否會帶來巨大的速度成本,我必須為每個產品過濾(查詢)與特定產品相對應的圖像幾張圖片。我認為如果我在實際產品表中創建圖像列會更快。

我會在圖像表中給出一些行,但是我不知道我最終會為商店提供多少張圖像。

如果將這些圖像傳送到網頁,最好將 URL(或 URL 的關鍵部分)儲存在數據庫表中。將圖像保存在文件中。這樣,HTML<img src=...>可以由您的程式碼生成,並且很容易被使用者的瀏覽器獲取。

當然,限制是儲存圖像的磁碟空間。並且無需將圖像放在同一台伺服器上。也不需要所有圖像都位於單個伺服器中。

建構網頁不必觸摸圖像。這是稍後非同步處理的。

大多數圖像格式(jpg 等)已經被壓縮。再次壓縮它們是浪費的。

“我不會限制我可以添加到產品中的圖像數量。” 然後您需要一個新表或將所有圖像儲存在一行中(壓縮可以工作)。

您將在查找鍵上對該表進行索引,因此任何額外的成本都會很小。請記住,圖像將是大對象,並且不太可能與其他數據儲存在同一頁面中,因此無論哪種方式,這兩個選項都會有額外的查找。

引用自:https://dba.stackexchange.com/questions/302521