标签含 MySQL 的文章.

MySQL随机查询数据

2011年04月20日


昨晚突发奇想想给那个树洞加一个随机浏览一条信息的功能。然后百度了一下,通俗的方法是:

select * from `table` order by rand() limit 0,1;

想起以前博客的随机文章貌似也是用这个实现的,但是网上说这个查询效率太低,确切是效率极低。好吧,那哥就再找一个效率高一点的吧~

百度、谷歌了一大把,发现搜出来的内容都是一篇文章,还都他妈的都原创,艹啊 才知道转载文章能有这么恶心人。不过还是试了篇被转载千万次的文章的方法,效果很差,300多条记录,每次得到的都是ID50以下的,典型的有缺陷嘛。

效率低的不能用,有缺陷的不能用。于是借助PHP的rand函数,我的解决方法就是这样的:
$id=rand(1,10000)/10000;
$sql="SELECT * FROM `table` WHERE id >= (SELECT floor( $id * (SELECT MAX(id) FROM `table`))) ORDER BY id LIMIT 1";


麻雀虽小 但五脏俱全

2010年04月30日
到目前,这个博客系统核心部分应该算是结束了,当然还有一些细节需要完善.核心的程序也就十几K大小.目前各项功能自己还算满意.

同时欢迎各位帮忙测试性能及安全性,有什么问题可以在这里给我留言。