mysql数据库 如果数据库中有800万条数据,我想随机抽取10000条,要怎么做抽取的更快
展开全部
什么叫抽取的更快?和什么比更快?你现在是怎么做的?
数据库性能是和很多因素有关的:
想要数据库响应的快,首先要有好的服务器。
如果数据库是在远程服务器上,还要有充足和流畅的带宽网络。
合理安排表的结构,建立索引。
针对你这个,800万条数据如果在一个表里,要有个整数型的ID作为主键,并做索引。如果数据是从不同的表里抽出来再组合起来的,表与表之间的链接键尽量用整数型并做索引。
然后生成10000个随机数,在ID里查找这1万个数字,取出对应的数据。
处理过程放到数据库端。
针对你这个,10000个随机数的生成函数用存储过程的形式存在服务器端。
展开全部
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from table01 order by rand() limit 10000;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |