免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2135 | 回复: 7
打印 上一主题 下一主题

谁有从40万条数据中随机取30条最佳方式? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-31 16:29 |只看该作者 |倒序浏览
谁有从40万条数据中随机取30条最佳方式?  试过N种,始终找不到满意的方式.

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
2 [报告]
发表于 2009-08-31 16:46 |只看该作者
你的表结构和索引分布情况是怎样的?

论坛徽章:
0
3 [报告]
发表于 2009-08-31 17:06 |只看该作者
都在一个表里,索引没问题的.

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
4 [报告]
发表于 2009-08-31 17:22 |只看该作者
原帖由 netxiao2005 于 2009-8-31 17:06 发表
都在一个表里,索引没问题的.


晕。。。
根据你的描述来看,估计你试过了 order by rand() limit 10这种方式。

为什么我要问你表结构和索引情况:
假设你有个自增id列,并且有索引,那么可以现生成10个随机的id,然后select in 这样可以避免全表读取。
假设你没有自增的id,而是一个没有规律的int主键,那么你可以先 select pri_key from xxx order by rand() limit 10,然后再和原表去结合。
等等。。。各种情况

所以先明确你的需求,不要让别人去猜你的需求和现状。

评分

参与人数 1可用积分 +8 收起 理由
枫影谁用了 + 8 精品文章

查看全部评分

论坛徽章:
0
5 [报告]
发表于 2009-08-31 17:46 |只看该作者

你说的方法我早都试过了啊:) 国内国外的资料都翻遍了.

算了,算是我的牢骚贴了,对Mysql严重不爽的一个发泄吧. 谢谢你的回复喔~~~

论坛徽章:
0
6 [报告]
发表于 2009-08-31 21:34 |只看该作者
看来楼主也是做过功课的,即然这样的方法不行。有没有想过别的方法呢?
例如:如果有唯一索引只取这个索引的40W的数据在程序层取出随机10个。
业务特殊了,可以走专用的一个DB(Slave)不影响现网业务的情况下,在那个Slave做一些特殊的操作。

方法很多的,关建看自已对那里熟悉了。所以怎么做,还是有LZ决定的。

论坛徽章:
0
7 [报告]
发表于 2009-09-01 10:41 |只看该作者

谢谢喔~~~

我会试的,

论坛徽章:
0
8 [报告]
发表于 2009-09-01 15:16 |只看该作者
平时都是直接在slave上order by rand(),还真没去好好想最佳方式这个问题...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP