首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL -计算每条记录在未来5秒内的行数

MySQL -计算每条记录在未来5秒内的行数
EN

Stack Overflow用户
提问于 2013-08-06 18:27:56
回答 2查看 193关注 0票数 3

我有一张桌子tb

代码语言:javascript
复制
ApplyID, ApplyDate,  
=================================  
John,    2008-01-23 12:00:01    
Joe,     2008-01-23 12:00:02  
Mary,    2008-01-23 12:00:02  
Snoopy,  2008-01-23 12:00:06  
Snoopy,  2008-01-23 12:00:07  
Snoopy,  2008-01-23 12:00:11  
John,    2008-01-23 12:00:21  

我想数数每一行在接下来的5秒内有多少行。

产出如下:

代码语言:javascript
复制
ApplyID, ApplyDate, Sessions
=================================  
John,    2008-01-23 12:00:01, 3   
Joe,     2008-01-23 12:00:02, 4  
Mary,    2008-01-23 12:00:02, 4  
Snoopy,  2008-01-23 12:00:06, 3  
Snoopy,  2008-01-23 12:00:07, 2  
Snoopy,  2008-01-23 12:00:11, 1  
John,    2008-01-23 12:00:21, 1  

我使用的查询:

代码语言:javascript
复制
SELECT p1.ApplyID, 
    p1.ApplyDate,
   (
     SELECT COUNT(*)
     FROM tb p2
     WHERE p2.ApplyDate >= p1.ApplyDate
        AND UNIX_TIMESTAMP(p2.ApplyDate)- UNIX_TIMESTAMP(p1.ApplyDate) <= 5
   ) AS sessions
FROM tb p1
ORDER BY ApplyDate

这是有效的,但将需要很长时间来显示结果。有什么更好的方法来提高查询性能吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-06 18:32:13

有时,join的性能优于子查询。你可以试试:

代码语言:javascript
复制
select  p1.ApplyID
,       p1.ApplyDate,
,       count(*)
from    tb p1
join    tb p2
on      p2.ApplyDate between p1.ApplyDate and p1.ApplyDate + interval 5 second
group by
        p1.ApplyID
,       p1.ApplyDate
order by
        p1.ApplyDate

ApplyDate上创建索引可能会有所帮助:

代码语言:javascript
复制
create index IX_TB_ApplyDate on tb (ApplyDate, ApplyID)

两个音符。因为您只选择了ApplyIDApplyDate,所以这个索引甚至涵盖了您的查询。并确保您的查询不使用UNIX_TIMESTAMP,这可能会阻止MySQL使用索引。

票数 3
EN

Stack Overflow用户

发布于 2013-08-06 18:32:40

代码语言:javascript
复制
SELECT p1.ApplyID, p1.ApplyDate, COUNT(*) as SESSIONS
FROM tb p1, tb p2
WHERE p2.ApplyDate >= p1.ApplyDate
AND UNIX_TIMESTAMP(p2.ApplyDate)- UNIX_TIMESTAMP(p1.ApplyDate) <= 5
ORDER BY p1.ApplyDate
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18087761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档