无限制获取最后记录的任何更好的选择

Any better alternative for getting last record without limit

我有以下查询

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 fields.But 之后,我得到的时间是相对中等大小的 0.25 秒 table.My 主自动增量字段是 tsh_id。我在 transaction_Id 字段上有索引。我认为订购和记录最后一条记录可能会对性能产生影响。那么有什么替代方案吗?

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

  SELECT * 
    FROM t1
   WHERE key_part1 = constant
ORDER BY key_part2;

(transaction_Id,tsh_id) 上的复合索引应该会加快速度。

我认为没有比 LIMIT 更快的方法来获取最新记录了。