龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > MySQL 技术 >

MySQL中随机抽取一条记录

时间:2011-08-15 17:53来源:未知 作者:admin 点击:
分享到:
论如何快速在MySQL中随机抽取一条记录 很多时候我们会遇到这样的情况,需要随机推荐一条记录。 往往我们会用到 By rand() 这个数据库排序方式。其实不然,这条语句会加大MySQL负荷。
论如何快速在MySQL中随机抽取一条记录

很多时候我们会遇到这样的情况,需要随机推荐一条记录。

往往我们会用到 By rand() 这个数据库排序方式。其实不然,这条语句会加大MySQL负荷。

这是一个令很多新手程序员会掉进去的陷阱。你可能不知不觉中制造了一个可怕的平静。这个陷阱在你是用BY RAND()命令时就开始创建了。

如果您真的需要随机显示你的结果,有很多更好的途径去实现。诚然这需要写更多的代码,但是能避免性能瓶颈的出现。问题在于,MySQL可能会为表中每一个独立的行执行BY RAND()命令(这会消耗处理器的处理能力),然后给你仅仅返回一行。

 

//我们通常会这样做:   

$r = mysql_query("SELECT username FROM user ORDER BY RAND() LIMIT 1");   

  

// 其实最好这样处理   

$r = mysql_query("SELECT count(*) FROM user");   

$d = mysql_fetch_row($r);   

$rand = mt_rand(0,$d[0] - 1);   

$r = mysql_query("SELECT username FROM user LIMIT $rand, 1");  


精彩图集

赞助商链接