0

こんにちは、このクエリには 100 ミリ秒かかります。

SELECT 
  COUNT(
    s0_.id 
  ) AS sclr0, 
  s0_.id AS id1, 
  s0_.status AS status2, 
  ...
  s0_.public AS public22, 
  t1_.username AS username23, 
  t1_.username_canonical AS username_canonical24, 
  ...
  t1_.old_new AS old_new57, 
  t1_.image_name AS image_name58, 
  s0_.user_id AS user_id59 
FROM 
  statuses s0_ 
INNER JOIN 
  users t1_ ON s0_.user_id = t1_.id 
WHERE 
  s0_.time >= ? AND s0_.suggested_status = 1 
GROUP BY 
  t1_.id 
ORDER BY 
  sclr0 DESC 
LIMIT 
  10
Parameters: [1376784000] 
[Display runnable query]
Time: 108.53 ms [  - Explain query ]

そして説明:

id  select_type table   type    possible_keys   key key_len ref rows    Extra
1   SIMPLE  t1_ index   PRIMARY PRIMARY 4       12132   Using temporary; Using filesort

1   SIMPLE  s0_ ref IDX_4BF01E11A76ED395    IDX_4BF01E11A76ED395    4   db.t1_.id   3   Using where

私は何か間違ったことをしていますか?

クエリのポイントは、「推奨」とマークされたステータスを投稿したすべてのユーザーを選択し、先月の各ユーザーの推奨ステータスの数でユーザーを並べ替えることです。

4

1 に答える 1