我有个主意。数据库里加个字段,存随机整数,写入的时候存。
需要读的时候在客户端随机一个不算太小的整数N
然后select xx where rndfield<N limit 20;
再从中随机交换一下,得出10个来
如果再有一个job定期更新数据库里的随机数字段就更好了
【 在 chaobill (若我离去,后会无期) 的大作中提到: 】
: 标 题: 从数据库里随机抽出几个人的资料怎么做快
: 发信站: 水木社区 (Thu Feb 4 12:47:02 2010), 站内
:
: slowquery 慢查询里都是
: select id from tabelname order by rand() limit 10;
: 消耗时间都是几秒
: 如何优化?
: --
: 一个只知道所谓互联网精神的公司,会死的很难看,尤其是在那些还没有长成人形的公司!
: 1. Everything changes and ends. 所有的事情在变化,都有终结
: 2. Things do not always go according to plan. 事情总会出乎意料(计划)之外
: 3. Life is not always fair. 生活并不总是公平
: 4. Pain is part of life. 痛苦是生活的一部分
: 5. People are not loving and loyal all the time. 人们并不总是热爱和忠诚
:
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 211.99.222.*]
--
FROM 218.247.11.*