我读过http://explainextended.com/2009/03/01/selecting-random-rows/,它也被建议作为对other questions关于从大表中选择随机行的回答。
但是,我现在想知道如何将此技术与仅选择另一个字段设置为特定值的行相结合。
在我的例子中,我尝试构建一个马尔可夫链。我的表有一个id列,它是自动增量主索引。它还有一个snippet列,该列存储要添加的字符串的新部分,但前提是prev_snippet列是正确的。
这意味着我希望从表中选择一个随机行,该行的prev_snippet也设置为我已经拥有的某个字符串。我怎样才能高效地做到这一点呢?
发布于 2014-11-13 22:01:22
所以,是的,如果你不关心真正的随机,那么链接帖子中的想法可能是相当好的。只要在prev_snippet列上建立索引即可!
但因为它仍然完全独立地使用随机数,所以即使有一行,你也可能在结果中得不到任何行。也就是说,每次过滤器运行时,它总是会排除。
franky,我会试着使用ORDER BY RAND() LIMIT 1,它可能会工作得很好。最重要的是结果集的大小,而不是初始表的大小。
https://stackoverflow.com/questions/26890688
复制相似问题