[英]php and mysqli num_rows all the time?
我公司有一個很大的網站,銷售各種產品。
因此,例如,這里的一種產品的評論數為+1000,而銷量超過+4000。
我們在mysql中的Sell表具有超過1.000.000行的已售產品。
因此,我們這樣做:
$results = $mysqli->query("SELECT id, product_code, product_desc, price FROM sell where id='$id'");
之后,num_rows獲得所有產品。
相同以獲得此產品評論,產品喜歡,標記...
我們的網站很慢。
我的問題是,所有num_rows都可能導致此問題? 我們是否應該而不是一直做num_rows,而是創建一個增加每次銷售,評論...的數量並獲得此值的表格?
換句話說,在這種情況下,num_rows是一個好的做法嗎?
可能不是導致速度緩慢的NUM_ROWS
,可能不是查詢本身。 以下是可能的改進:
- 索引。 您的表有索引嗎? 我建議按ID列創建索引。
- 統計。 您分析過表格了嗎?
- 查看數據庫結構。 您可能不需要SELL表中的產品描述。 產品ID可能就足夠了。 如果從表中刪除不必要的列,它將變得更輕便,性能更好。
UPD:您可以像這樣重寫查詢以在結果中包含值:
SELECT id, product_code, product_desc, price, count(*) as cnt
FROM sell where id='$id'
GROUP BY id, product_code, product_desc, price
您將擁有cnt
值,該值是返回的行數。
$ results = $ mysqli-> query(“ SELECT count(*)as num FROM sell where id ='$ id'”);
讀完您的問題后,我認為您正在處理龐大的數據庫。 我更喜歡您使用數據表,其中有一個稱為Serveside的選項:true使用數據表,您將可以輕松處理大量數據(這對於您將來的目的也是您公司的網站而言)。我們的客戶網站之一,其結果簡直令人難以置信,您可以通過使用限制來增加數據的計數和列表,這些限制不會給您的DATABASE造成太大的負擔。請嘗試使用鏈接數據表中的示例
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.