php和mysqli num_rows一直都是?

时间:2015-04-13 07:22:44

标签: php mysql sql mysqli

我公司有一个大网站,销售各种产品。

因此,例如,这里的一个产品有+1000条评论,售价超过+4000。

我们在mysql中的卖表有超过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是否是一个好习惯?

3 个答案:

答案 0 :(得分:0)

可能不是引起缓慢的NUM_ROWS,可能是查询本身。 以下是可能的改进:

  
      
  1. 指标的影响。你的表有索引吗?我建议按ID列创建一个索引。
  2.   
  3. 统计。你有桌子分析了吗?
  4.   
  5. 查看数据库结构。您可能不需要SELL表中的产品说明。产品ID可能就足够了。如果从表中删除不必要的列,它将更轻,性能更好。
  6.   

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值,这是返回的行数。

答案 1 :(得分:0)

$ results = $ mysqli-> query(“SELECT count(*)as num FROM sell where id ='$ id'”);

答案 2 :(得分:0)

在阅读了您的问题后,我认为您正在处理庞大的数据库。 我更喜欢你使用datatable,你有一个名为Serveside的选项:true 使用数据表,您将能够非常轻松地处理大量数据(这也是为了您公司网站的未来目的)我个人将其实现到我们的客户网站之一,结果很棒,您可以带来数量并使用限制来列出数据,这些限制不会对DATABASE产生太大影响 请点击链接Data tables

中的示例