我有一张包含大约 5000 万条记录的表。
表结构如下所示,并且callerid和call_start字段都被索引。
id -- callerid -- call_start
我想选择其 call_start 大于 '2013-12-22' 并且 callerid 在整个表中的 '2013-12-22' 之前不重复的所有记录。
我用过这样的东西:
SELECT DISTINCT
ca.`callerid`
FROM
call_archives AS ca
WHERE ca.`call_start` >= '2013-12-22'
AND ca.`callerid` NOT IN
(SELECT DISTINCT
ca.`callerid`
FROM
call_archives AS ca
WHERE ca.`call_start` < '2013-12-21')
但这非常慢,任何建议都非常感谢。