簡體   English   中英

Opencart 3 getProduct 方法導致頁面加載緩慢

[英]Opencart 3 getProduct method causes slow page loading

我的 Opencart 3.0 運行很慢。 在 chrome 瀏覽器檢查器的 .network 選項卡中,它記錄了加載類別頁面的 23.02 秒。

當我嘗試調試它時,我可以看到加載緩慢發生在這里

catalog/model/catalog/product.php - public function getProduct($product_id)

在這個方法中,當我在返回的數組中注釋掉這一行時 - 'product_id' => $query->row['product_id'] ,加載速度達到 7s。

方法getProduct($product_id)在此方法getProducts($data = array())中被調用。 調用該方法的部分如下所示。

$query = $this->db->query($sql);
foreach ($query->rows as $result) {
   $product_data[$result['product_id']] = $this->getProduct($result['product_id']);
}

當我注釋掉這一行時

//$product_data[$result['product_id']] = $this->getProduct($result['product_id']);

加載速度達到3.5s。

我想不通的是為什么這部分代碼需要時間返回 - 'product_id' => $query->row['product_id']

我會感謝你的幫助。

看起來您的問題來自catalog/model/catalog/product.ph p 文件中的getProduct()getProducts()方法。 特別是這一行:

'product_id' => $query->row['product_id']

所以你可以檢查你的數據庫性能,完成這個查詢需要多少時間。

  1. 如果花費太多時間並且您的列沒有索引,您可以索引它們。
  1. 您還可以嘗試使用 LIMIT 子句或 WHERE 子句來限制查詢中檢索的行數。

  2. 您可以使用 Opencart 緩存系統來減少時間。

在第一次登錄時,它看起來更像是與數據庫相關的問題,而不是代碼問題。

暫無
暫無

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

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