最近我試圖將圖像存儲在Mysql數據庫中(使用BLOB數據類型),使用php和web來上傳和存儲它。它工作正常,除了加載足夠大的圖像時,它會加載非常緩慢。有什麼辦法可以更快地加載這個圖片嗎?如何更快地從Mysql加載圖像?
注:我的朋友建議我使用武力緩存到該圖像(他說,有關改變圖像的內容頭),但我不知道該怎麼做。我懷疑它會帶來更好的表現。
在此先感謝
最近我試圖將圖像存儲在Mysql數據庫中(使用BLOB數據類型),使用php和web來上傳和存儲它。它工作正常,除了加載足夠大的圖像時,它會加載非常緩慢。有什麼辦法可以更快地加載這個圖片嗎?如何更快地從Mysql加載圖像?
注:我的朋友建議我使用武力緩存到該圖像(他說,有關改變圖像的內容頭),但我不知道該怎麼做。我懷疑它會帶來更好的表現。
在此先感謝
我想緩存可以很好或不是。相反的,我建議你上傳圖片或其他文件到文件夾和數據庫保存只是文件中的信息:名稱,類型,大小,文件夾,等等...
圖像應該被緩存。我認爲這可以通過確保您製作的圖片url始終與相同圖片相同來完成。我認爲你的問題是,但你需要改變max_allowed_packet。如果它太小,它將無法一次性通過網絡發送太多數據。另外,如果圖片真的很大,我還會考慮將圖片質量改爲70%?所有調整大小的圖像函數都有一種方法來改變它。即:http://php.net/manual/en/function.imagejpeg.php。希望有所幫助。我也會考慮YSlow。它會幫助指出你的圖像究竟是什麼錯誤,使它加載緩慢。無論是質量,緩存,壓縮還是w/e都可能。
緩存圖像時存儲在文件系統中的圖像都可以使用。如果它們從數據庫動態彈出並打印出來,每次PHP代碼請求它們時都會被抓取。
這可能是因爲圖像是在數十毫秒的牽強,但一個3MB的圖像數據可以被下載到客戶端瀏覽器進行5秒至1分鐘(取決於連接速度)。與它沒有太大的關係(在共同的共享主機上甚至更少)。
我建議將圖像存儲在文件系統中,以便它們可以被瀏覽器緩存,或者您甚至可以在Apache服務器上設置一個memcache,以便在到期時它們將從緩存中提供。
誰說圖片不能被緩存等待的形象,如果他們是從一個數據庫來的? :) –
這取決於他們的打印方式......如果他們被內嵌打印像''他們可能不會被緩存一個base64數據...除非FPC緩存被啓用? – shadyyx
也許這後約[緩存動態數據](http://stackoverflow.com/questions/10596116/caching-http-responses-when-they-are-dynamically-created-by-php/10596231#10596231)可以幫助你 –