我需要一个比我现在使用的更高的性能查询。我需要得到最高的分数
id
从一组与其他条件匹配的行中。现在我有这样的想法:
SELECT * FROM mytable
WHERE (thing = 'foo' OR thing = 'bar')
AND used IS NULL
AND stime = 0
AND ~flags & 1
ORDER BY id DESC
LIMIT 1;
但是,此查询需要很多秒才能运行。我需要接近亚秒级的性能,即使是0.99也很好。
WHERE
关于
身份证件
列,例如
max(id)
和
max(id) - 10000
.用于替代
10000
它运行得非常快,这就足够了。问题是这些值在世界其他地方的分布
哪里
这个从句非常不规则。最后
10000
行可以包含也可以不包含任何与其他条件匹配的行。如果可能的话,我需要找到至少一行。
是否有一些小的SQL语句集(换句话说,多个快速查询就可以了)可以让我得到最后(最高)的结果
身份证件
)以高性能的方式匹配行?