gpt4 book ai didi

mysql - 如何以更优化的方式从数据库中获取随机行

转载 作者:行者123 更新时间:2023-11-29 11:31:35 24 4
gpt4 key购买 nike

嗨,我知道如何获取随机行,但我需要一种优化的方法,我正在将大量数据从 Oracle 中的一个模式迁移到另一个模式。除了对每个表执行 count 验证之外。我正在进行随机记录验证(对于任何随机行,我正在检查数据库之间的所有列值是否匹配)。我正在使用

SELECT * FROM (SELECT * FROM  ADM_USER ORDER BY dbms_random.value) WHERE rownum = 1;

在此之前我使用的是:

 select * from ADM_USER where ADM_USER_ID=(select Round(dbms_random.value(1,max(ADM_USER_ID))) from ADM_USER)

后一个问题是 ADM_USER_ID 中的值不连续。因此大多数时候查询返回空结果集。第一个很好,但对于基数很大的表,需要 6 到 7 秒。

提前致谢。

最佳答案

对于 Oracle,请查看 SAMPLE 子句。下面将随机查看表格的 1%

select * from MDSYS.SDO_COORD_REF_SYS sample(1);

您仍然可以在其上添加 rownum=1 过滤器。

关于mysql - 如何以更优化的方式从数据库中获取随机行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37313529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com