问题描述
- 现在有1500万条数据,想从中随机抽取50万条,采用什么方式比较快捷?
- 现在有1500万条数据,想从中随机抽取50万条,采用什么方式比较快捷。数据是存储在mysql里的。
解决方案
额,试试随机生成Where条件来做
解决方案二:
SELECT * FROM table_name ORDER BY RAND() limit 500000
解决方案三:
随机获取索引,limit 会连续取值,不会随机
解决方案四:
随机获取索引,limit 会连续取值,不会随机
解决方案五:
ORDER BY RAND() 比较慢
http://jan.kneschke.de/projects/mysql/order-by-rand/
解决方案六:
如果你表里面有个数值型的递增的唯一主键a从1开始table有俩字段ab;
select tt.att.b
from (select a b from table) tt
where tt.a in
(select FLOOR(1 + RAND() * 15000000)
from dual
connect by limit 500000);
如果没有这样的主键就row_number()下再用上面的方法
由于没有装mysql上面的代码可能要调试下希望这个思想能帮助你
时间: 2024-09-17 11:23:58