0

各製品に応じてビューの行をカウントする最速の方法を知る必要があります。2つのテーブル間で結合してクエリを実行しようとしました。「product_db」と「product_views」。しかし、クエリを完了するのに約 1 分かかりました。

これが私のコードです:

select *,
count(product_views.vwr_id) as product_viewer,
from product_db 
inner join product_viewer on product_db.id=product_views.vwr_cid
where product_id='$pid' order by id desc

' $pid ' は製品 ID です。

これは私の product_views テーブルです。

ここに画像の説明を入力

ビューアーの列をテーブルに含める必要があります。しかし、読み込みに非常に時間がかかります。別のクエリをカウントしようとしましたが、うまくいきませんでした。もっと素晴らしい方法を提案してください。

よろしく、

4

1 に答える 1

0

カウントではなく、クエリが遅いようです。あなたが試すことができる2つのこと:

  1. product_id フィールドにインデックスがあることを確認してください。
  2. product_id が数値フィールドの場合は、前後の一重引用符を削除してください。つまり、これwhere product_id='$pid'をこれに変更しますwhere product_id=$pid。MySQL は product_id フィールドで変換を行って比較用の文字列に変換し、存在する場合はインデックスを無視する可能性があります。
于 2013-06-13T17:39:37.747 に答える