从MySQL中的大表中快速选择随机行

从MySQL中的大表中快速选择随机行

从大型MySQL表中选择随机行的快速方法是什么?

我正在使用php,但我对任何解决方案都感兴趣,即使它是用另一种语言。


慕桂英3389331
浏览 721回答 3
3回答

慕的地6264312

MediaWiki使用了一个有趣的技巧(针对Wikipedia的特殊:随机特性):带有文章的表有一个带有随机数的额外列(在创建文章时生成)。要获得一篇随机文章,生成一个随机数,并在随机数列中得到下一个更大或更小(不记得是哪个)值的项目。有了索引,这是非常快的。(MediaWiki是用PHP编写的,是为MySQL开发的。)如果结果数字分布不好,这种方法可能会导致问题;IIRC,这已经固定在MediaWiki上了,所以如果您决定这样做,您应该查看代码,看看它是如何完成的(可能它们会周期性地重新生成随机数列)。
打开App,查看更多内容
随时随地看视频慕课网APP