我有一个很大的结果集(R1)(几百万行),我想从中快速选择一个样本集。
我正在使用https://stackoverflow.com/a/25994039/601147,但速度太慢了。
有人知道更好的解决方案吗? 感谢
答案 0 :(得分:0)
如果您有自动增量列,则可以查询最小和最大ID,并让您的应用生成n
随机ID lowest < random-ID < largest
,您可以使用SELECT ... WHERE ... IN (<your-random-ids>)
进行选择。
IN
部分中的值数量在MySQL上限制为max_allowed_packet。因此,您可能必须在多个IN
- 查询上拆分列表。
也不是所有随机ID都可能存在,因此您必须检查返回的行数,并使用相同的过程再次填充剩余的列表,直到您有足够的值。