首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL从一个大表中获取最近的条目

MySQL从一个大表中获取最近的条目
EN

Stack Overflow用户
提问于 2014-04-02 10:30:04
回答 2查看 326关注 0票数 0

我有一个有超过50k个条目和几个用户的表:

代码语言:javascript
复制
transactions Table:
ID
USER
VALUE
TIMESTAMP

users Table:
USER
TYPE
REGION

我想得到每个用户的最新事务。到目前为止,我使用了以下BY语句组,但是它很慢(大约需要5-10秒):

代码语言:javascript
复制
select ID , max(TIMESTAMP) as TIMESTAMP from transactions group by USER;

是否有更快的语句来检索最近的条目?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-02 10:54:30

首先,根据我的理解,ID列应该在transaction表中保留唯一的值,因此group by应该根据您的需求在USER字段中。

此外,您可以尝试下面的查询。我不确定,但您可以将其时间与您的查询进行比较,并相应地使用。

代码语言:javascript
复制
SELECT 
USER , TIMESTAMP 
FROM
 (SELECT USER,TIMESTAMP FROM transactions ORDER BY ID DESC) a 
GROUP BY USER;

假设在用户列上有一个索引,因为这在两个表之间是常见的。

票数 0
EN

Stack Overflow用户

发布于 2014-04-02 11:26:37

尝尝这个,

代码语言:javascript
复制
select u.*,tr.* from users  as u
outer apply
    (
    select top 1 * from transactions as t
      where t.USER= u.USER
      order by t.ID desc
)as tr
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22808610

复制
相关文章

相似问题

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