0.9 ORDER BY rating DESC L-6ren">
gpt4 book ai didi

Mysql "where rand()"性能

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

我正在尝试从我的数据库中随机选择文章,其中高评分的文章被选中的机会更高

SELECT * FROM articles WHERE RAND()>0.9  ORDER BY rating  DESC LIMIT 3

我的问题是: 它会随机整个表,还是直到找到 3 篇随机数字大于 0.9 的文章为止

最佳答案

如果您有 INDEX( rating),则该查询可能会在找到第 3 行之前获取 3 或 4 (3/(1-0.1)) 行。

但这根本不会给你“高评分的文章有更高的机会被选中”。它只是为您提供随机 90% 的最高排名行。

这可能会给你你想要的东西,但需要进行全表扫描:

SELECT *
FROM articles
ORDER BY rating * RAND() DESC
LIMIT 3;

关于Mysql "where rand()"性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31098423/

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