mysql数据库 如果数据库中有800万条数据,我想随机抽取10000条,要怎么做抽取的更快

 我来答
raycar0524
2013-06-20 · TA获得超过4683个赞
知道小有建树答主
回答量:812
采纳率:0%
帮助的人:634万
展开全部

什么叫抽取的更快?和什么比更快?你现在是怎么做的?

数据库性能是和很多因素有关的:

  1. 想要数据库响应的快,首先要有好的服务器。

  2. 如果数据库是在远程服务器上,还要有充足和流畅的带宽网络。

  3. 合理安排表的结构,建立索引。

    针对你这个,800万条数据如果在一个表里,要有个整数型的ID作为主键,并做索引。如果数据是从不同的表里抽出来再组合起来的,表与表之间的链接键尽量用整数型并做索引。

    然后生成10000个随机数,在ID里查找这1万个数字,取出对应的数据。

  4. 处理过程放到数据库端。

  5. 针对你这个,10000个随机数的生成函数用存储过程的形式存在服务器端。

lrmlry
2013-06-21 · TA获得超过586个赞
知道小有建树答主
回答量:597
采纳率:0%
帮助的人:412万
展开全部
SELECT *FROM TABLE WHERE id >=(SELECT floor( RAND() *((SELECT MAX(id) FROM TABLE )-(SELECT MIN(id) FROM TABLE )) +(SELECT MIN(id) FROM TABLE ))) ORDER BY id LIMIT 1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TUBER727
2013-06-21 · TA获得超过428个赞
知道小有建树答主
回答量:351
采纳率:100%
帮助的人:112万
展开全部
select * from table01 order by rand() limit 10000;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式