首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql "where rand()“性能

问Mysql "where rand()“性能
EN

Stack Overflow用户
提问于 2015-06-28 17:59:15
回答 1查看 95关注 0票数 0

我试图从我的数据库中随机挑选文章,其中高评级的文章被选中的机会更高

代码语言:javascript
复制
SELECT * FROM articles WHERE RAND()>0.9  ORDER BY rating  DESC LIMIT 3

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

EN

回答 1

Stack Overflow用户

发布于 2015-06-28 23:39:23

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

但这根本不会给你“高评级文章被选中的机会更高”。它只给你一个随机的90%的最高排名的行。

这可能会得到您想要的结果,但需要进行全表扫描:

代码语言:javascript
复制
SELECT *
    FROM articles
    ORDER BY rating * RAND() DESC
    LIMIT 3;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31098423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档