A表插入到B表中,select有效的列和drop多余的列,那种更快?

QQ824219654 2020-05-13 08:24:30
方式一:
insert into b select a,b,c from a;
方式二:
alter table a drop column b;
insert into b select * from a;
那种更快?为什么?
...全文
466 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
QQ824219654 2020-06-16
  • 打赏
  • 举报
回复
对了,忘记说了,这451万数据,数据结构较简单,而且重复,是lz重复insert的产物,有可能造成这个结果
QQ824219654 2020-06-16
  • 打赏
  • 举报
回复
抱歉啊,现在才看到,按常理来说,我也认为方式一更快,只是当时遇到这个现象,有点不确定,要说具体场景的话,就是lz经常有吧表减几个字段弄到另外一张表里的情况,因为同库就想着写SQL处理。可能我这数据量还是少,等有机会弄个大批量的数据测试一下
引用 2 楼 riven2011 的回复:
方式一会更快 理由:方式二 drop列需要时间,没有收缩表和方式一的表段大小一样,也就是他们占用相同的数据块。 楼主可以详细描述一下出现的场景
riven2011 2020-05-14
  • 打赏
  • 举报
回复
方式一会更快
理由:方式二 drop列需要时间,没有收缩表和方式一的表段大小一样,也就是他们占用相同的数据块。
楼主可以详细描述一下出现的场景
QQ824219654 2020-05-13
  • 打赏
  • 举报
回复
lz这边641W条数据,方式一用了353+秒,方式二才用了190+秒,求解,(方式二先跑的)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧