2013-05-20 105 views
0

當我添加15個縮略圖(每個4kb-5kb)時,我的網站往往會減慢很多速度,甚至會在2.5k的在線用戶崩潰,沒有它們可能需要4.5k-5k。如何添加縮略圖減慢我的網站很多?

我製作了一個腳本,可以在每個圖片上傳時從動畫gif製作縮略圖,並將該圖片的路徑存儲在數據庫中。在添加縮略圖之前的每一頁打開之前,我的網站將從數據庫URL,標題,ID和路徑傳送到GIF圖像,只有變化的是獲得15個標題的縮略圖的路徑。

我的網站是http://www.smesniposteri.com/在右側,你可以看到我正在談論的15個標題。以下是有關網頁用戶使用和不使用縮略圖打開每次訪問的代碼。

沒有:

$sql = "SELECT id, url, hits, subject FROM ".DB_PREFIX."items WHERE `id` != '".$id."' AND `type` = '".$cat."' ORDER BY `timestamp` DESC LIMIT 0, 15; 


$result = $db->query($sql); 
$template->assign_vars('others_row', array(
'URL' => $url."/".create_item_url($row['id'], $row['subject'], $cat), 
'HITS' => number_format($row['hits'], 0, ',', '.'), 
'SUBJECT' => $row['subject'] 
    )); 

與縮略圖:

$sql = "SELECT id, url, hits, subject, thumb_url FROM ".DB_PREFIX."items WHERE `id` != '".$id."' AND `type` = '".$cat."' ORDER BY `timestamp` DESC LIMIT 0, 15; 


$result = $db->query($sql); 
$template->assign_vars('others_row', array(
'URL' => $url."/".create_item_url($row['id'], $row['subject'], $cat), 
'HITS' => number_format($row['hits'], 0, ',', '.'), 
'THUMBNAIL' => $row['thumb_url'], 
'SUBJECT' => $row['subject'] 
    )); 
+0

''THUMBNAIL'=> $ row ['thumb_url']'顯然是從數據庫中進行15次查找。嘗試在原始查詢中包含縮略圖,而不是添加查找。 –

+0

即原始查詢該別人行 – user2035457

回答

0

很多東西可怎麼回事。很可能,我會說,當你有很多不同的圖像和許多用戶時,它是硬盤驅動器抖動的問題。如果您的數據庫和映像位於同一個驅動器上,則在數據庫搜索之上每秒請求數千次的15個不同的文件系統文件會導致一些延遲。特別是如果圖像位於碎片硬盤上。真的,你需要運行一些性能工具,比如Perfmon,觀察cpu,內存和驅動器指標,同時用圖像運行你的服務器。在兩種模式下運行時,還要檢查數據庫查詢執行計劃,以確保您的代碼不會進行大量數據庫調用,而您並不期待。這應該告訴你你的瓶頸在哪裏。

+0

感謝您的重播我會試試 – user2035457