选择从查询返回的随机行的子集的有效方法

时间:2012-02-20 06:56:02

标签: mysql

假设我有一张约200万行的表格。我还有一个查询,最多返回这些行的一半(100万)。我想从100万行中选择30个随机行。

查询本身非常快(1/100秒)。如果我添加“ORDER BY RAND()LIMIT 30”,无论是否使用索引,它都会变得非常慢(3秒)。当返回的行数很大时,此方法无法正常工作。

我能想到的唯一选择是获取所有行并随机使用PHP或其他任何东西,但这更糟糕,因为选择100万行会占用相同的时间,也会消耗大量的内存。

我错过了一些明显的东西吗?

由于

0 个答案:

没有答案