Py学习  »  DATABASE

从匹配行中选择最高ID的高性能MySQL查询

CXJ • 3 年前 • 1331 次点击  

我需要一个比我现在使用的更高的性能查询。我需要得到最高的分数 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语句集(换句话说,多个快速查询就可以了)可以让我得到最后(最高)的结果 身份证件 )以高性能的方式匹配行?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/127960
 
1331 次点击  
文章 [ 3 ]  |  最新文章 3 年前