在不更改表结构的情况下选择表中最后n行的最有效方法是什么?

时间:2020-03-06 14:34:15  来源:igfitidea点击:

使用mySQL在表中选择最后n行的最有效方法是什么?该表包含数百万行,在任何给定时间,我都不知道该表有多大(它一直在增长)。该表确实具有一列,该列会自动递增,并用作每一行的唯一标识符。

解决方案

SELECT * FROM table_name ORDER BY auto_incremented_id DESC LIMIT n

使用ORDER BY以DESC顺序按标识符列进行排序,并使用LIMIT指定所需的结果数。

也许按唯一ID降序排列:

SELECT * FROM table ORDER BY id DESC LIMIT n

唯一的问题是我们可能想以不同的顺序进行选择,这个问题使我不得不通过计算行数来选择最后几行,然后使用LIMIT选择它们,但是显然这可能不是一个好解决方案在你的情况下。

我们可能还希望添加一个降序索引(或者在mysql中称为降序索引),以便在需要经常执行的操作时快速进行选择。