mysql 性能与 select not in

标签 mysql performance

我想查找 2012 年 5 月 17 日之后添加到计划表中的新市场。 此选择有效,但对于 16k 记录,性能很慢。 当我删除第二个不同的关键字时,性能大大提高,并且得到相同的结果,但我仍然需要此选择更快。大约需要 25 秒。一定有更快的方法吗?

select distinct(market) 
from plan
where date_added > '2012-05-17'
and market not in (select distinct(market) from plan where date_added < '2012-05-17')

最佳答案

不确定这会提高您的性能,但这是另一种方法:

select market
  from (select market,
               min(date_added) min_date
          from plan
         group by market) as sub_plan
 where sub_plan.min_date > '2012-05-17';

此外,请允许我注意,我是 Oracle 人员,因此请原谅细微的语法差异。

关于mysql 性能与 select not in,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10640441/

相关文章:

php - PDO 模拟关闭,多次绑定(bind)相同的值

css - 大型样式表或带有 http 请求的较小版本

php - Mysql_fetch_assoc() 使用 LIKE 对我的查询发出警告

javascript - 每当我点击网站内的页面链接时,我都会注销,如何修复?

mysql - 为每个用户创建表?

mysql - 在 mysql 上对数百万行进行 SUM() 和 GROUP BY

c# - 检查 C# 代码性能的最佳方法

performance - 我可以期望 grep 处理 10 TB 文件多长时间?

javascript - 在分解长时间运行的 JavaScript 任务时避免强制延迟 setTimeout

mysqli 嵌套选择查询