任何更好的替代方案,无限制地获得最后记录

时间:2015-05-29 13:09:48

标签: mysql query-optimization

我有以下查询

DECLARE lv_Duration INT;    
    SET @lv_Duration = 0;    

     SELECT @lv_Duration := TIMESTAMPDIFF(SECOND,  changedon,NOW()) 
     FROM  `transactionhistory` 
     WHERE transaction_Id = TRIM(_transaction)        
     ORDER BY tsh_id DESC
     LIMIT 1; 

我在上次输入transaction_Id字段时得到的时间。但它在相对中等大小的表中占用了0.25秒。我的主要自动增量字段是tsh_id。我在transaction_Id字段上有索引。我认为订购和记录最后的记录可能会对性能产生影响。那么它的替代方案呢?

1 个答案:

答案 0 :(得分:1)

从McAdam331提供的ORDER BY optimisation link我相信您的查询符合模式:

poly.example <- cor.ci(mydata[1:10,1:100],n.iter = 10,poly = TRUE)

print(corr.test(mydata[1:10,1:100],short=FALSE) 上的综合索引应加快速度。

我认为有一种比 SELECT * FROM t1 WHERE key_part1 = constant ORDER BY key_part2; 更快的方式来获取最新记录。