作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 ~3M 行的表。这些行是date
、time
、msec
,以及其他一些带有int 数据的列。这些行中的一些未知部分被认为是“无效的”,因为它们存在于单独的表 outages
中(基于日期范围)。
目前查询执行一个 select * 然后使用一个巨大的 WHERE 来删除无效的日期范围(很多 'and not ( RecordDate >'2008-08-05' and RecordDate < '2008-08-10' )' ) 等等。这消除了使用索引的任何机会。
我正在寻找一种更好的方法来限制结果。目前,查询需要几分钟才能运行。
最佳答案
DELETE b FROM bigtable b
INNER JOIN outages o ON (b.`date` BETWEEN o.datestart AND o.dateend)
WHERE (1=1) //In some modes MySQL demands a `where` clause or it will not run.
确保您在查询中涉及的所有字段上都有索引。
关于mysql/matlab : optimize query - removing dates from a list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7337623/
我是一名优秀的程序员,十分优秀!