【发布时间】:2011-11-07 05:27:34
【问题描述】:
我遇到了这个查询的问题......或者,还没有我很快就会遇到的问题。目前,“marketingDatabase”表大约有 11k 行,但在下个月内,它可能会接近 100k 行,到 3 月份可能会增长到 500k。
我知道使用 ORDER BY RAND() 不是要走的路,但这是我唯一需要做的事情。我尝试过其他方法,但第一个 WHERE 语句似乎让我失望了。我正在使用 PHP,所以我也可以在 PHP 中处理其中的一些。
使用此查询从适合 WHERE 语句的行中选择随机行的最佳方法是什么?
这是查询:
SELECT id
FROM `marketingDatabase`
WHERE do_not_call != 'true'
AND status = 'Pending'
AND install_id = 'AN ID HERE'
AND NOT EXISTS(
SELECT recordID
FROM reminders rem
WHERE rem.id = marketingDatabase.id
)
ORDER BY rand()
LIMIT 1
关于如何更好地工作有什么想法吗?我只需要一个随机的“id”。
【问题讨论】: