mysql随机取数据,如何实现高效率?
来源:互联网 发布:武汉理工大学 知乎 编辑:程序博客网 时间:2024/04/29 18:14
从数据库中(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
其实随机产生数据,完全可以让他有根据的随机产生。这怎么讲?比如一篇文章,它有标题、标签、内容,可以提取权重很高的关键词,没篇文章都这么处理,用搜索引擎倒排序的方法,可以快速找到相同关键词的一类文章,然后在这些文章里,随机产生几条数据就是了。把大海捞针的活,变成了在浴池里捞个杂物,从大的范围,缩小到能掌控的范围,万事就变得简单啦!这也是一种思路,找不到很好的解决办法时,可以试试。
0 0
- mysql随机取数据,如何实现高效率?
- mysql随机取数据,如何实现高效率?
- mysql 随机取一条或多条数据 高效率
- mysql高效率随机取一条或多条数据
- mysql如何随机取数据
- mysql随机取数据
- mysql随机取数据
- mysql随机取数据
- mysql 随机取一组数据
- mysql 随机取数据 高效
- mysql中取随机数据
- MySQL 随机取数据效率问题
- 随机取mysql的N条数据
- Mysql 表中随机取数据记录
- MySql 随机取数据(简单版)
- MySQL 随机取数据效率问题
- 高效率随机删除数据(不重复)
- MySQL随机取元素
- 检查字符是否是整数,如果是,返回其整数值
- Android代码工具集——将输入流转换成字节数组
- 主持人
- ubuntu unity 左侧长条添加新启动
- Android代码工具集——网络Post请求
- mysql随机取数据,如何实现高效率?
- ViewHolder模式超简洁写法,很cool!
- MIPS寄存器
- (转)2014-03-29.阿里实习生招聘笔试题目
- 今年最火微信营销,个人、小企业运营给别人开代理账户,给别人建站你也可以!
- ASP.NET 后台动态添加控件(复选框)
- 第一篇博客
- vmware 网络设置
- MySQL中concat函数(连接字符串)