28
2012-12

mysql随机取数据,如何实现高效率?

从数据库中(mysql)随机获取几条数据很简单,但是如果一个表的数据基数很大,比如一千万,从一千万中随机产生10条数据,那就相当慢了,如果同时一百个人访问网站,处理这些个进程,对于一般的服务器来说,肯定是要死机的。

mysql数据库获取随机数据的函数rand(),我建议轻易不要用这个,我写博客的时候试了一下,从16万数据里随机获取5条数据,用时14.02秒,这个耗费满惊人的。

SELECT * FROM t_share ORDER BY rand() LIMIT 5;

通过mysql最大值函数max(),最小值min()来减小查询消耗

因为mysql数据的最大值和最小值的获取几乎是0消耗的,数据库表数据与自身主键ID的集合做join查询,是非常快速的。刚我也试了一下,在16万数据的基数下,随机产生5条数据几乎看不到时间消耗的。但是这种查询方法有一个缺点,产生的数据ID都是连续的,如果想不连续,还要做循环执行才行(每循环一次随机1条或2条数据)。

SELECT sh1.* FROM fw_share AS sh1 
JOIN
(SELECT
    ROUND(
        RAND() * ((SELECT MAX(share_id) FROM fw_share)-(SELECT MIN(share_id) FROM fw_share)) 
        + (SELECT MIN(share_id) FROM fw_share)
    ) AS share_id
) AS sh2 
WHERE sh1.share_id>=sh2.share_id

其实随机产生数据,完全可以让他有根据的随机产生。这怎么讲?比如一篇文章,它有标题、标签、内容,可以提取权重很高的关键词,没篇文章都这么处理,用搜索引擎倒排序的方法,可以快速找到相同关键词的一类文章,然后在这些文章里,随机产生几条数据就是了。把大海捞针的活,变成了在浴池里捞个杂物,从大的范围,缩小到能掌控的范围,万事就变得简单啦!这也是一种思路,找不到很好的解决办法时,可以试试。



除非注明,文章均为史亚永原创,欢迎转载!转载请注明本文地址,谢谢。

本文地址:http://www.shiyayong.cn/post/78.html

评论列表:

17  周家大少  2012-12-28 19:18:59 回复该留言  IP:27.45.38.102
现在刚开始学这个,不是很懂
  茶馆老板  2012-12-28 20:08:58 回复该留言  IP:114.112.45.183
没事,慢慢来,以后有什么问题都可以留言告诉我
茶馆老板
周家大少
16  谢若尧  2012-12-28 19:04:06 回复该留言  IP:218.70.255.133
博客的访问速度不是很快
  茶馆老板  2012-12-28 20:08:36 回复该留言  IP:114.112.45.183
我看看是不是服务器那边的问题吧,这是租用别人的
茶馆老板
谢若尧
15  jao  2012-12-28 18:30:28 回复该留言  IP:221.182.74.221
来坐坐了,博客做得比我的好多了.

这个帖子不错,收下了....

你们的博客人气都好高 哦,为啥我的博客就没有啥人气呢?
  茶馆老板  2012-12-28 20:08:15 回复该留言  IP:114.112.45.183
多多交流,互相学习嘛
  jao  2012-12-28 21:33:00 回复该留言  IP:117.172.82.80
呵呵 .会的.我下午来的时候才31评论的博文.现在就41了.哎.伤不起啊
  茶馆老板  2012-12-28 21:34:19 回复该留言  IP:114.112.45.183
慢慢来,不要着急,以后有什么问题都可以留言告诉我,互相交流学习
  jao  2012-12-28 21:35:48 回复该留言  IP:117.172.82.80
嗯.好的.我一般喜欢做小偷功能的程序.最近在做TCP挂Q玩玩.哈哈哈.
  茶馆老板  2012-12-28 21:37:06 回复该留言  IP:114.112.45.183
小偷程序吗?你那个是做什么用的啊?是游戏**吗?
  jao  2012-12-29 22:03:05 回复该留言  IP:117.172.81.194
也算是小偷吧.可以自动挂QQ啊,呵呵呵
  茶馆老板  2012-12-29 22:06:42 回复该留言  IP:114.112.45.183
自动挂Q用来做什么啊?
  jao  2012-12-29 22:09:21 回复该留言  IP:117.172.81.194
可以卖程序啊.可以给博客带来访问量啊.哈哈.我以前做网站的时候就靠放源码来争取访问量的
  茶馆老板  2012-12-29 22:10:10 回复该留言  IP:114.112.45.183
还不是太懂,可否教我?
  jao  2012-12-29 22:11:32 回复该留言  IP:117.172.81.194
php小偷程序...写程序.....这个不好教吧..全靠感觉
  茶馆老板  2012-12-29 22:16:11 回复该留言  IP:114.112.45.183
我就是学php的啊,不怕这个,要不你加我的Q教我呗。823690631
茶馆老板
jao
茶馆老板
jao
茶馆老板
jao
茶馆老板
jao
茶馆老板
jao
茶馆老板
jao
14  kay  2012-12-28 18:19:20 回复该留言  IP:111.225.64.183
来你这里坐坐了,对于数据库,自己一点不懂。`(*∩_∩*)′6
  茶馆老板  2012-12-28 20:07:46 回复该留言  IP:114.112.45.183
那以后有什么不懂得可以来问我哦,留言告诉我,我帮你解决
茶馆老板
kay
13  设计2点半  2012-12-28 17:52:24 回复该留言  IP:60.166.140.18
怎么打开你的博客好卡。
  茶馆老板  2012-12-28 20:07:23 回复该留言  IP:114.112.45.183
不会吧,还可以啊,速度蛮好的啊,是不是你网速的问题啊?亲
茶馆老板
设计2点半
12  徐恩云  2012-12-28 17:51:23 回复该留言  IP:60.211.185.42
过来回访
  茶馆老板  2012-12-28 20:07:00 回复该留言  IP:114.112.45.183
以后常来哦,给你留个位子,亲
茶馆老板
徐恩云
11  多语言网站制作  2012-12-28 17:47:03 回复该留言  IP:120.32.218.92
怪怪 刚才好像在哪个博客也看了这样的一篇文章 难道他是自己复制的?
  茶馆老板  2012-12-28 20:06:42 回复该留言  IP:114.112.45.183
这是我从他那里转摘的,感觉不错就转摘过来了。还有他的网址呢
茶馆老板
  PHP乐知博客  2012-12-28 20:17:37 回复该留言  IP:103.8.221.228
转载的,好的文章值得传递,好想法大家都应该知道。
  茶馆老板  2012-12-28 20:20:04 回复该留言  IP:114.112.45.183
是啊,以后遇到好的文章都可以转摘保留作者网址哦
茶馆老板
PHP乐知博客
多语言网站制作
10  Leniy  2012-12-28 17:08:05 回复该留言  IP:60.211.191.214
随机取数据啊
  茶馆老板  2012-12-28 17:20:38 回复该留言  IP:124.205.133.34
嗯,随即读取数据
茶馆老板
Leniy
9  林書逸  2012-12-28 16:50:26 回复该留言  IP:180.141.199.145
衹要快是不破的所以電腦是超級電腦就快了
  茶馆老板  2012-12-28 16:54:45 回复该留言  IP:124.205.133.34
那么什么样的电脑才是超级电脑呢?现在的超级本的主频太低了
  Leniy  2012-12-28 17:23:59 回复该留言  IP:60.211.191.214
还是看查询效率了。先索引在查询快很多
  茶馆老板  2012-12-28 17:25:58 回复该留言  IP:124.205.133.34
需要什么字段,需要多少,就查询什么字段,查询多少,这样效率才高
茶馆老板
Leniy
茶馆老板
林書逸
8  ic女人  2012-12-28 16:00:12 回复该留言  IP:112.234.65.50
一看就是个高手!
  茶馆老板  2012-12-28 16:09:27 回复该留言  IP:124.205.133.34
我也就是个做php程序的,以前做过一年的SEO。
茶馆老板
ic女人
7  ic女人  2012-12-28 15:59:55 回复该留言  IP:112.234.65.50
以后有数据库的问题就可以来找你了,真是不错嘿嘿
  茶馆老板  2012-12-28 16:09:10 回复该留言  IP:124.205.133.34
一定尽心尽力的为你解决
茶馆老板
ic女人
6  sunhaiwei  2012-12-28 14:35:11 回复该留言  IP:210.22.136.170
不错 不错 学习技术的新去处~~
  茶馆老板  2012-12-28 14:44:21 回复该留言  IP:124.205.133.34
绝对不会让你失望的,以后常来哦
  sunhaiwei  2012-12-28 14:45:14 回复该留言  IP:210.22.136.170
必须的 已经订阅了
  茶馆老板  2012-12-28 14:47:41 回复该留言  IP:124.205.133.34
以后有什么问题都可以留言告诉我的
茶馆老板
sunhaiwei
茶馆老板
sunhaiwei
5  PHP乐知博客  2012-12-28 12:42:48 回复该留言  IP:125.39.179.130
我就不好说什么了,有想法大家可以多多交流
  茶馆老板  2012-12-28 12:59:40 回复该留言  IP:124.205.133.34
呼呼,说吧,亲,想说啥就说啥,哈哈
茶馆老板
PHP乐知博客
4  那不是我  2012-12-28 11:43:12 回复该留言  IP:111.222.80.66
减少查询
  茶馆老板  2012-12-28 12:59:21 回复该留言  IP:124.205.133.34
是啊,当数据库达到一定的大小的时候查询会变慢,access的执行效率超过64M之后就会变慢了
茶馆老板
那不是我
3  王志程博客  2012-12-28 11:35:48 回复该留言  IP:124.163.17.116
请教个问题吧,网站恢复数据库后出现乱码,咋会回事呢
  茶馆老板  2012-12-28 12:58:41 回复该留言  IP:124.205.133.34
是不是网站的编码和数据库编码不一致啊
茶馆老板
王志程博客
2  宋聪明  2012-12-28 10:29:06 回复该留言  IP:125.76.183.50
我?我学的是电子商务。虽然也有这些技术课程,但是不感兴趣。以后向你多多请教,哈哈。谢谢!
  茶馆老板  2012-12-28 10:37:07 回复该留言  IP:124.205.133.34
这个没问题的,以后尽管来,交换下友情链接吧,我已经给你加上了。
  宋聪明  2012-12-28 10:38:18 回复该留言  IP:125.76.183.50
OK,没问题。稍等我给你加上。我的QQ 411786449 多多交流。
宋聪明
  宋聪明  2012-12-28 10:41:13 回复该留言  IP:125.76.183.50
已添加完成。
  茶馆老板  2012-12-28 12:57:48 回复该留言  IP:124.205.133.34
好的,以后多多交流,互相学习
茶馆老板
宋聪明
茶馆老板
宋聪明
1  宋聪明  2012-12-28 10:09:45 回复该留言  IP:125.76.183.50
IT起步者博客,恩很不错。不过对于技术,我还是蛮头疼的。
  茶馆老板  2012-12-28 10:27:36 回复该留言  IP:124.205.133.34
你不是学计算机的吗?那你学的什么啊?以后有问题可以给我留言,我会帮你解决的
茶馆老板
宋聪明

发表评论:

(设置个性头像)

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

无觅相关文章插件,快速提升流量