簡體   English   中英

如何加快此SELECT查詢的速度?

[英]How can I speed up this SELECT query?

我有一個包含user_id,time,inHour和outHour這樣的表

在此處輸入圖片說明

我想與user_id分組並使用相關字段獲取最大時間。 在下面的圖片中,您可以看到我想要的結果。

在此處輸入圖片說明

我的查詢效果很好。 但我想提高速度,因為它對大數據的運行速度很慢。 這是我的查詢:

SELECT
  foo.user_id,
  foo.time,
  foo.inHour,
  foo.outHour
FROM
(
    SELECT
        MAX(time) AS time,
        user_id
    FROM 
        foo
    GROUP BY user_id
) AS t1
INNER JOIN foo ON (t1.user_id = foo.user_id AND t1.time = foo.time);

我需要大大減少查詢時間。 任何幫助是極大的贊賞。

GroupWise的-MAX?

您將需要一個復合索引。 您現有的查詢將受益於

INDEX(user, time)  -- in this order!

我的博客提供了更快的技術: http : //mysql.rjweb.org/doc.php/groupwise_max

暫無
暫無

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

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