SELECT
从表中获取前 n 个元素很容易:
SELECT id FROM pixels WHERE pixel_id='some_pixel_id' ORDER BY id DESC LIMIT 1000;
使用子查询查找第 n 个元素非常简单:
SELECT MIN(id) FROM
(SELECT id FROM pixels WHERE pixel_id='some_pixel_id' ORDER BY id DESC LIMIT 1000) s;
假设BTREE
相关列上有一个索引 ( id
),这种方法是否有效?有没有更好的选择?
这只是对@david 查询的改进,因此当
1000
中间集中的行少于以下行时,您会得到相同的结果:任何这些查询的最佳索引是 on
(pixel_id, id)
,而不是(id)
单独的 on 。