标签: mysql
假设我有一张约200万行的表格。我还有一个查询,最多返回这些行的一半(100万)。我想从100万行中选择30个随机行。
查询本身非常快(1/100秒)。如果我添加“ORDER BY RAND()LIMIT 30”,无论是否使用索引,它都会变得非常慢(3秒)。当返回的行数很大时,此方法无法正常工作。
我能想到的唯一选择是获取所有行并随机使用PHP或其他任何东西,但这更糟糕,因为选择100万行会占用相同的时间,也会消耗大量的内存。
我错过了一些明显的东西吗?
由于