pg批量插入_在PostgreSQL中批量/批量更新/提升
我正在编写一个Django-ORM功能,尝试缓存模型并推迟模型保存,直到事务结束。这几乎完成了,但是我遇到了SQL语法中的意外困难。
我不是一个DBA,但从我的理解,数据库不能真正有效地为许多小的查询。几个更大的查询好多了。例如,最好使用大批量插入(一次说100行),而不是使用100个单线程。
现在,从我可以看到,SQL并没有提供任何语句来对表执行批量更新。这个词似乎令人困惑,所以我会解释一下我的意思。我有一个任意数据的数组,每个条目描述一个表中的一行。我想更新表中的某些行,每行使用数组中相应条目的数据。这个想法与批量插入非常相似。
例如:我的表可以有两列“id”和“some_col”。现在,描述批量更新数据的数组由三个条目(1,’first updated),(2,’second updated’)和(3,’third updated’)组成。更新之前,表格包含:(1,’first’),(2,’second’),(3,’third’)。
我来过这个帖子:
这似乎做了我想要的,但是我不能真正弄清楚语法的结尾。
我也可以删除所有需要更新的行,并使用批量插入重新插入,但是我觉得很难相信这实际上会更好。
我使用PostgreSQL 8.4,所以一些存储过程也可能在这里。然而,随着我计划最终开源项目,任何更多便携式的想法或方式在不同的RDBMS上做同样的事情是最受欢迎的。
跟进问题:如何做一个批处理“insert-or-update”/“upsert”语句?
检测结果
我执行了100次10次插入操作,分布在4个不同的表中(总共有1000个插入)。我在Django 1.3上测试了PostgreSQL 8.4后端。
结果如下:
>所有操作都通过Django ORM完成 – 每次通过〜2.45秒,
>同样的操作,但没有Django ORM完成 – 每次通过〜1.48秒,
>只能插入操作,而不查询数据库的序列值〜0.72秒,
>只能插入10个块(总共100个块)〜0.19秒的块,
>只插入操作,一个大执行块〜0.13秒。
>仅插入操作,每个块约250个语句,〜0.12秒。
结论:在单个connection.execute()中执行尽可能多的操作。 Django本身引入了大量的开销。
免责声明:除了默认主键索引之外,我没有引入任何索引,因此插入操作可能运行得更快。
pg批量插入_在PostgreSQL中批量/批量更新/提升相关推荐
- python加数据库_用python批量插入数据到数据库中
既然使用python操作数据库必不可少的得使用pymysql模块 可使用两种方式进行下载安装: 1.使用pip方式下载安装 pip install pymysql 2.IDE方式 安装完成后就可以正常 ...
- 批量插入以及数据存在重复就进行更新操作
批量插入以及数据存在重复就进行更新操作 示例: /*** 批量更新** @param guiYangStationInfos*/ private void updateStationInfos(Str ...
- ado.net mysql 批量插入_[Dapper].NET/C#程序开发中使用Dapper批量插入数据集合的方法应该如何实现?...
问题描述 使用Dapper如何向数据库中批量插入数据或者说使用Dapper如何插入一个集合(List),在没有使用Dapper(使用Ado.net)的情况下,我们通常的实现方式如下: try { co ...
- sql加上唯一索引后批量插入_阿里大佬总结的52条SQL语句性能优化策略,建议收藏...
你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 cnblogs.com/SimpleWu/p/9929043.html 推荐:h ...
- Java通过Mybatis实现批量插入数据到Oracle中
最近项目中遇到一个问题:导入数据到后台并将数据插入到数据库中,导入的数据量有上万条数据,考虑采用批量插入数据的方式: 结合网上资料,写了个小demo,文章末尾附上demo下载地址 1.新建项目:项目目 ...
- sql 一次性批量插入_考虑使用SQL批量插入的安全性
sql 一次性批量插入 In this article, we'll discuss security implications of using SQL Bulk Insert and how to ...
- wps如何删除括号里的内容_文档中怎么批量去除括号里面的答案 - 卡饭网
在word2007文档中如何批量删除英文字母? 在word2007文档中如何批量删除英文字母? 在word2007文档中如何批量删除英文字母? 步骤 1.点击office word2 ...
- jpa的批量修改_如何使用JpaRepository进行批量(多行)插入?
从服务层长时间调用saveAllmy方法时,Hibernate的跟踪日志记录显示每个实体发出单个SQL语句.JpaRepository``List 我可以强迫它进行批量插入(即多行),而无需手动处理E ...
- 将excel数据批量插入到数据库表中
项目实例结构: 1.model实体类 package com.model;public class Test {private int num1;private String num2;private ...
最新文章
- iOS NSRunloop 详解
- R语言实战应用精讲50篇(一)-万字长文干货R语言ggplot2包图形绘制
- linux kernel defconfig和.config
- 服务器双向认证 原理,什么叫SSL双向认证 SSL双向认证过程是怎样的
- fir.im同款企业级APP分发平台系统源码
- python异常处理有什么意义_怎么学好Python异常处理 五种处理机制是什么
- 黑苹果mac未能安装在你的电脑上_mac电脑上全新视频剪辑软件安装包分享,让你剪辑视频从此无忧!...
- ps5手柄连接android,PS5游戏手柄甚至可以兼容安卓设备?这一次有的玩了
- 51Nod - 1384 全排列
- 论软件架构建模技术与应用
- Android热修复-Robust
- win7计算机管理无用户账户,win7系统右键没有以管理员身份运行解决方法
- C#实战012:Excel操作-获取Excel某一行数据并存入数组
- android 跨屏效果图,手机电脑二合一:小米妙享跨屏协作正式上线
- [渗透教程]-006-渗透测试-Metasploit以及实战教程
- vue的sync修饰符
- sqlserver2008R2在配置复制分发时报错:在执行xp_cmdshell的过程中出错
- Android车载Launcher开发(1) - 显示Widget
- Synology 搭建双机冗余High Availability服务
- 服务器虚拟化软件的结构组成和各组件的主要功能与作用
热门文章
- VMware vSAN 的内部版本号和版本 (2150753)--2020-10-27 更新
- Java设计模式学习总结(15)——行为型模式之责任链模式
- Java基础学习总结(156)——那些年被淘汰的Java技术及框架
- linux 多线程并行计算,浅谈.NET下的多线程和并行计算(五)线程池基础上
- web dialog 内嵌 图片_Unity游戏如何在iOS上调用Facebook原生对话框分享图片
- python用xlrd怎么清洗数据_利用Python进行数据清洗
- java自学难点_分享在达内教育培训Java的感受
- java 一一对应的替换_java 如何实现按表替换
- 项目的权限设计的小计
- linux查看端口被哪个服务占用的命令