SQL Server 1百万条记录:获取表的最后一条记录最快的最佳方法吗?
示例:我有一个具有100万条记录的表A。获得最快的最近记录的方法是什么?
我知道: SELECT TOP 1 * FROM A ORDER BY ID DESC
但是我认为这对我来说不是一个好方法。
答案 0 :(得分:1)
如果您在ID上具有聚集索引(可能是主键索引),则问题中的查询将表现出色。没有更快的方法可以从表的单行中检索所有列。
我将添加一个表,该表在逻辑上是一组无序的行,因此需要ORDER BY
才能返回“最后”或“第一”行。 ORDER BY
列上的b树索引将有效地定位该行。
答案 1 :(得分:0)
在主键和value上只有一种索引。 order by有一点成本,但是如果您在order列
上有索引就可以--ORDER BY 1 DESC means order by primary key index desc
SELECT [Columns] FROM [TABLENAME] ORDER BY 1 DESC
--or you can use this if your first column is IDENTITY or A/A
SELECT [Columns] FROM [TABLENAME] ORDER BY [YOUR_COLUMN_WITHA/A ] DESC