数据库中大批量记要的合并操作
数据库中大批量记录的合并操作?有两张数据库表基本信息表(学号,性别,年龄,出生日期。。)有1亿条记录参加项目
数据库中大批量记录的合并操作?
有两张数据库表
基本信息表(学号,性别,年龄,出生日期。。)有1亿条记录
参加项目表(学号,项目名称,项目日期,项目大小,备注)有5000万记录(不是每个学生都有对应项目信息)
现在要将这两张表合并,内存有1g,
请问怎么处理
[最优解释]
select a.*,项目名称,项目日期,项目大小,备注
from 基本信息表 a
left join 参加项目表 b
on a.学号=b.学号
---草根说的没错
[其他解释]select m.* , n.* from 基本信息表 m left join 参加项目表 n on m.学号 = n.学号
[其他解释]溢出倒不会,不过花儿会等到谢了的
[其他解释]提高硬件性能,顺便学习一下拉
[其他解释]建个视图
[其他解释]内存只有1g啊
[其他解释]会不会溢出
[其他解释]操作起来内存有1g?????
[其他解释]1G的内存估计用什么都不行
[其他解释]溢不出来,
[其他解释]该回复于2009-10-19 10:42:12被版主删除
[其他解释]没看到新鲜的东西...继续顶去...
[其他解释]数据量都不少
[其他解释] 一行一行读。。读到花儿谢了再开。
[其他解释]1亿 left join 5000W 合并,执行完可以不管了,让他慢慢跑。。。。 服务器不要做别的了,硬盘闪啊闪。
会好的,要有耐心
[其他解释]机器跑这个....
就像我小时候的口号--实现四个现代化
[其他解释]亿级的数据, 用1G的内存。。估计有的等!!
[其他解释]上亿的学号,学校真是历史很长了,不知你合并后用来干嘛,导出、实时查询还是其它呢?
[其他解释]有好点的办法吗
[其他解释]是啊,会很漫长的。
建议:等到合并后弄成个分区表吧!
[其他解释]如果是实时查询,就可以用存储过程来做
[其他解释]关注yix9999999999999999
[其他解释]把硬盘摘了,挂到个好的服务器上,要不买条内存
------其他解决方案--------------------
如果在项目表里没有学号的信息不列出来的话可以这么做
select a.*,b.项目名称,b.项目日期,b.项目大小,b.备注 from 基本信息表 a
left join 参加项目表 b on a.学号=b.学号
where a.学号 not in
( select distinct(学号) from 参加项目表 )
不过数据量这么大的话还是需要提高一下机器的配置才行,要不运行速度会很慢。而且最好把这个查询写道存储过程中,效率能提高些。还要注意给这两个表建索引。
[其他解释]ding
[其他解释]提高硬件性能
[其他解释]好,准备以后学习呢
[其他解释]建一个视图,再跟视图建一个索引就可以达到一个表单的效果。
[其他解释]ding