【发布时间】:2014-11-12 15:34:46
【问题描述】:
我读过http://explainextended.com/2009/03/01/selecting-random-rows/,这也是other questions关于从大表中选择随机行的答案。
但是,我现在想知道如何将这种技术与仅选择其他字段设置为特定值的行结合使用。
就我而言,我很想建立一个马尔可夫链。我的表有一个 id 列,它是自增主索引。它还有一个snippet 列,用于存储要添加的字符串的新部分,但前提是prev_snippet 列正确。
这意味着我想从表中选择一个随机行,该行也将prev_snippet 设置为我已经拥有的某个字符串。我怎样才能有效地做到这一点?
【问题讨论】:
-
很大程度上取决于你现在'随机'你需要它。真正随机的,或者只是大部分随机的。假设有 4 个匹配的行,总是有 25% 的时间得到每一个是非常重要的。或者,某些结果是否比其他结果更受青睐并不重要?
-
您的“过滤器”的选择性如何?即它总是具有高度选择性(每个 prev_sn-p 的结果很少),还是有一些 prev_sn-p 有成百上千的结果?
-
如果不是完全平均分布也没关系。然而,过滤器的选择性差异很大:当前的实现使用最后两个词进行比较。例如,当前面的单词是“of the”时,可能会返回很多结果。
标签: mysql random markov-chains