限制中的偏移是否会影响性能?

时间:2013-04-30 18:47:54

标签: mysql random limit

简化问题(没有上下文)是粗体文字,因为我倾向于过度详述

我处于需要从非常动态的查询结果中选择随机记录的情况。对于这个问题,我们假设查询可以产生0到100,000个结果(包括0和100,000)。现在我已经阅读了一些关于选择随机行的内容,我理解随机排序非常低效。我发现的解决方案的问题是,我不能假设数据不会有漏洞或均匀分布。

由于查询可能产生0结果,因此我计划事先计算特定查询的结果,以便可以正常运行。如果得到结果,我正在考虑使用应用程序层生成1和计数之间的随机数,并将其用作限制语句中的偏移量以获取我的随机结果(因为我不知道PK的有问题的那一行)。

但是,作为mysql的新手,我对操作的相对性能知之甚少,并且不知道偏移如何影响速度。会选择

LIMIT 950000, 1

执行速度比

慢得多
LIMIT 1

而且,如果可以的话,您是否会认为性能影响非常大,我需要找到一种实现目标的替代方法?

note 将生成这些随机行的查询可能包含超过10,000个排列。我想不出一种方法可以将数据组织成具有连续,均匀分布的记录的单独表格,就像我发现的随机选择的所有解决方案一样。

非常感谢你的时间。

0 个答案:

没有答案