无限制获取最后记录的任何更好的选择
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
更快的方法来获取最新记录了。
我有以下查询
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
更快的方法来获取最新记录了。