从大型 mysql 表中选择随机行的快速方法是什么?
我在 php 工作,但我对任何解决方案都感兴趣,即使它是用另一种语言编写的。
最佳答案
获取所有 id,从中随机选择一个,然后检索整行。
如果您知道 ID 是连续的,没有漏洞,您可以只获取最大值并计算一个随机 ID。
如果这里和那里有漏洞但主要是顺序值,并且您不关心稍微偏斜的随机性,请获取最大值,计算一个 id,然后选择 id 等于或大于该值的第一行你算了算倾斜的原因是 id 跟随这样的漏洞比跟随另一个 id 的漏洞更有可能被选中。
如果您随机排序,您将面临糟糕的表格扫描,快速 一词不适用于此类解决方案。
不要那样做,也不应该通过 GUID 来订购,它有同样的问题。
关于mysql - 从mysql中的大表中快速选择随机行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/142242/