tnblog
首页
视频
资源
登录

数据库处理大数据量更新

5454人阅读 2021/4/12 17:49 总访问:104259 评论:0 收藏:0 手机
分类: js

千万级数据更新

常规方法直接使用update来更新字段。


  --t1表新增字段B
  alter table t1 add ( B varchar2(32));
  --将t2表的字段C更新到t1表的B列中
  update t1 set B = (select C from t2 where t1.A =  t2.A);

在数据量较少的时候,这种写法是没问题的,简洁易懂。但是数据量太大的情况则不适用,在测试环境实际跑了一下,一个小时都没更新完,是否有其他方法呢。

使用MERGE

merge into是oracle内置函数,通常用来处理insertOrUpdate的需求,如果存在数据就update,如果不存在就insert。也可以只用来更新,速度很快。

   --t1表新增字段B
    alter table t1 add ( B varchar2(32));
    --通过merger的方式,将B表的column3字段更新到A表的column2列中
    merge into t1 Using (select * from t2 ) on (t1.A = t2.A)
    when matched then update set t1.B = t2.C

merge into 同时支持sql server,通过这种方式,在测试环境实际跑下来十分钟左右可以更新完成。

使用CTAS

create table as 的方式在之前的使用中,多用于创建备份表。因为这次需求才认识到其更多的用法。性能十分强悍。

    --首先使用ctas的方式创建临时表
    create table temp_A as select t1.*,t2.C from t1 left join t2 on t1.A = t2.A;
    --删除原始表
    drop table A;
    --将临时表重名称
     rename temp_A to A;
    --重新创建原表的索引等。。。
    create index ......

这个速度更快

评价

oracle数据库中没有scott用户

使用SYS用户登录conn sys/密码 as sysdba(默认密码123456)然后找到oracle安装目录下scott.sql的这个文件然后执行命令:@+...

没有为 SQL 缓存通知启用数据库

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql -S 数据库IP -U 登录名 -P 密码 -d 数据库名称 -t 表名 -et

ado.net访问数据库的基本用法

放回datatable//1:开打数据库的连接 using(SqlConnectionconn=newSqlConnection("server=.;uid=sa;pwd=123456;databa...

多线程、Lock锁、数据库实现队列

队列其元素以先进先出(Firstin,Firstout,FIFO)的方式来处理的集合。先放入队列中的元素会先读取。队列使用System.Collect...

思宇上课笔记—SQL数据库分页查询的方式

jQuery课堂实例分页在实际开发中经常被用到,今天就来介绍下SQL数据库分页的几种常见方式。 下面的例子都以每分5条数据为一...

遍历数据库中表的T4模板

简单的案例创建文本模板ctrl+s出奇迹<#@templatedebug="false"hostspecific="false"language=&quot...

日志是写数据库好还是文件好,以及日志策略

先来看看大佬的一句话:离开需求谈技术都是扯淡主要是看你的日志是为了只做一个存储归档,还是要把数据对统计与分析如果只...

数据库的varchar和nvarchar的区别

搞了一个上午,自己测试看懂的一点点小东西,现在记录下来....数据库的varchar和nvarchar的区别首先内存上:1--8000 1--400...

mysql数据库基础

1 数据库和表操作 2 数据操作 3 高级查询 4 mysql管理1 数据库和表操作 数据库 创建:create database 数据库名 [default ...

EF连接mysql连接mysql数据库操作中文数据乱码解决方法

修改数据库的连接字符器在连接字符器添加charset=gb2312。注意事项:(1)字符编码不支持UTF8。(2)必须使用规定编码。示例:&...

EF连接mysql数据库

注意事项准备工作(1)下载MySQL数据库软件6.6.6版本。 (2)下载MySQL数据库mysql-connector-net-6.6.6两者不一样都不能少。(...

EF操作数据库的数据迁移

Enable-Migrations启用数据库迁移。Enable-Migrations –EnableAutomaticMigrations 启动自动迁移。Update-Database 更新到...

redis使用list存储热点数据库

今天,又学啦一点新知识,redis(缓存),看到这个单词的时候想必大家都会有一种似曾相识的感觉吧准备好,我要开始讲解啦首先我...
此时幽梦远,不觉到山边!!!
排名
33
文章
20
粉丝
5
评论
4
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术