WEB开发网
开发学院数据库MySQL mySQL随机取数据的执行效率 阅读

mySQL随机取数据的执行效率

 2009-09-17 00:00:00 来源:WEB开发网   
核心提示:昨晚我在编写“路过的”的应用随机取笑话的时候发现一个问题,我的目标是从笑话表(大约几万条数据量)中随机抽取一条笑话并显示,mySQL随机取数据的执行效率,起初我的SQL如下:Sql代码select*fromxiaohualimit随机数,1其中随机数是由java程序产生,当随机数比较小时,最后我

昨晚我在编写“路过的”的应用随机取笑话的时候发现一个问题,我的目标是从笑话表(大约几万条数据量)中随机抽取一条笑话并显示,起初我的SQL如下:

Sql代码   

select * from xiaohua limit 随机数,1

其中随机数是由java程序产生,当随机数比较小时,发现执行速度非常快,但当随机数如超过1w时,执行速度超慢,看来这条路是行不通了,于是我又利用mysql的rand()函数,看看执行效率,发现效率也不好,最后我通过google了一下,发现碰到这个问题的人还是很多的,最终的SQL如下(速度超过),可到http://l.faqee.com/的查看笑话看执行速度:

Sql代码

SELECT t1.id as id,title,content,class_name,class_id,hits FROM xiaohua AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM xiaohua )-(SELECT MIN(id) FROM xiaohua ))+(SELECT MIN(id) FROM xiaohua )) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id LIMIT 1;

备忘一下!

Tags:mySQL 随机 数据

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接