InnoDB:使用事务批量插入或组合多个查询?

2024-05-24

做批量的时候INSERT在InnoDB中,我应该使用事务吗

START TRANSACTION;
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3);
INSERT INTO tbl_name (a,b,c) VALUES(4,5,6);
INSERT INTO tbl_name (a,b,c) VALUES(7,8,9);
COMMIT TRANSACTION;

或者合并多个查询?

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

如果重要的话,我使用 PHP 和 MySQL 数据库位于同一台机器上。


我建议像下面的示例中那样组合多个查询。

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

如果任一值对失败,则不会插入任何数据。此方法还向数据库发送更少的字符和往返。较少的字符的含义可能不那么有吸引力,但仍然具有轻微的优势。

EDIT:

蒂姆有一个很好的问题。让我包括以下信息:MySQL 文档 http://dev.mysql.com/doc/refman/5.7/en/insert-speed.html

如果要同时从同一客户端插入多行,请使用具有多个 VALUES 列表的 INSERT 语句一次插入多行。这比使用单独的单行 INSERT 语句要快得多(在某些情况下快很多倍)。如果要将数据添加到非空表中,则可以调整bulk_insert_buffer_size 变量以使数据插入速度更快。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

InnoDB:使用事务批量插入或组合多个查询? 的相关文章

  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • 一次从多个表中删除行

    我正在尝试将 2 个查询合并为一个这样的查询 result db gt query DELETE FROM menu WHERE name new or die db gt error result db gt query DELETE F
  • POINT 列上的 MySQL INSERT/UPDATE

    我正在尝试用我国家的地理位置填充我的数据库 我的一张表有 4 个字段 ID PK 纬度 经度和地理点 EDIT SCDBs Punto Geografico SET lat 18 469692 SET lon 63 93212 SET g
  • 在mysql中的单个查询中更新多个表

    我有三个查询 我想要一个 这是我的查询 UPDATE tab1 SET a WHERE id 3 UPDATE tab2 SET b WHERE id 9 UPDATE tab3 SET c WHERE id 5 您可以尝试下面的代码 UP
  • Galera 集群问题

    我想在我们的生产环境中使用Galera集群 但我有一些顾虑 每个表必须至少定义一个显式主键 每个表必须运行在InnoDB或XtraDB存储引擎下 分批处理您的大额交易 例如 不要让一个事务插入 100 000 行 而是将其分成更小的块 例如
  • MySQL - 从临时表插入

    这看起来非常简单 但我坚持使用简单的插入语句 见下文 begin work CREATE TEMPORARY TABLE IF NOT EXISTS insert table AS select r resource id fr file
  • 不允许在 php 中连接到此 MariaDB 服务器

    我尝试在 php 中连接远程服务器数据库 但出现以下错误 Host xx xxx xx xx is not allowed to connect to this MariaDB server in 我的连接代码是这样的 servername
  • MySQL“LIKE”搜索不起作用

    我通过 LOAD DATA INFILE 在 MySQL 中导入了一个 txt 数据库 一切似乎都正常 唯一的问题是 如果我使用以下查询在数据库上搜索记录 SELECT FROM hobby WHERE name LIKE Beading
  • Google Cloud SQL 在重新启动时卡住

    我的云 sql 实例长时间处于重新启动状态 在操作窗格中 重新启动的状态显示为待处理 并且还发生了导出 其状态仍为Running 有没有办法可以强制重新启动或取消重新启动或从常规备份中恢复数据 不 没有办法 如果您向 Google 支付高级
  • SQL Join 列上类似于另一列[重复]

    这个问题在这里已经有答案了 可能的重复 mysql连接查询使用like https stackoverflow com questions 1930809 mysql join query using like 我想要进行连接 其中一列包含
  • 每月获取记录,但如果该月没有记录,则为零

    如果我有以下 SQL 表 Tests id type receiveDate 1 Blood 2012 01 18 2 Blood 2012 01 20 3 Blood 2012 01 18 4 Blood 2012 03 01 5 Blo
  • 什么时候应该使用 C++ 而不是 SQL?

    我是一名 C 程序员 偶尔使用 MySQL 来处理数据库 但我的 SQL 知识相当有限 但我肯定愿意改变这一点 目前 我正在尝试仅使用 SQL 查询对数据库中的数据进行分析 但我准备放弃了 转而将数据导入到C 中 用C 代码进行分析 我和同
  • mysql 中的二进制、十六进制和八进制值

    我对在 mysql 数据库中使用二进制 十六进制和八进制系统非常感兴趣 首先 请给我一个建议 为什么我们在存储信息时需要它们 因为信息太多 或者为什么 另外 哪种类型的值必须存储在标记系统中 另外这里还有像 这是例子 gt SELECT 5
  • MySQL中如何声明变量?

    如何在mysql中声明一个变量 以便我的第二个查询可以使用它 我想写一些类似的东西 SET start 1 SET finish 10 SELECT FROM places WHERE place BETWEEN start AND fin
  • 如何从批量数据中的mysql列中删除所有非数字字符

    我想从列中删除所有非数字字符 我的数据库中有大量数据 目前我正在使用以下链接中描述的方法 http venerableagents wordpress com 2011 01 29 mysql numeric functions http
  • 在 SQL 中,如何从 SELECT * FROM ... 中排除结果?

    我知道我的标题不太具有描述性 让我在这里详细解释一下 假设一个表有 26 个字段 例如字段 a 字段 z 我只想要一个选择查询只返回 15 个字段 所以 通常 我会执行 SELECT field a field b field o FROM
  • 将庞大数据库从亚马逊RDS导出到本地mysql

    我在 Amazon RDS 上有一个 mysql 数据库 大约 600GB 数据 我需要将其移回本地专用服务器 但我不知道从哪里开始 每次我尝试初始化 sqldump 时它都会冻结 有没有办法将其移至 S3 甚至可能在开始下载之前将其分成更
  • Mysql用in语句限制

    我正在写一个查询 SELECT user bookmarks id as user bookmark id bookmark id user bookmarks user id bookmark url bookmark website b
  • 删除行导致锁超时

    当我尝试从表中删除行时 我不断收到这些错误 这里的特殊情况是我可能同时运行5个进程 该表本身是一个 Innodb 表 约有 450 万行 我的 WHERE 子句中使用的列没有索引 其他指数按预期运行 这是在事务中完成的 首先删除记录 然后插
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表

随机推荐

  • 角度距离计算

    我正在使用角度制作距离计算应用程序 Html
  • 从文本文件更新 wiki 消息

    是否可以让我的 wiki 从 txt 文件加载一行文本并将其显示在主页上的某个位置 像 每日消息 这样直接来自 txt 文件并且不涉及手动编辑 wiki 的东西 我的wiki运行在Ubuntu Mate上 如下 UPDATE 根据亚历山大的
  • 在模块中使用shiny的renderUI

    这是我在 stackoverflow 上的第一个问题 我在闪亮 1 0 5 中遇到模块和 renderUI 的问题 当我在中使用 renderUI 时 Main Part ui lt bootstrapPage uiOutput Dynam
  • R 中的整数或双精度列表

    我有一个大约 1000 个整数的列表 我需要能够进行一些数学计算 但它们被困在列表或字符形式中 我怎样才能切换它们以便它们可用 样本数据 gt y 1 1 7 3 1 6 7 1 7 6 5 3 1 3 3 0 6 2 4 9 19 1 9
  • 用户的完整 UNIX 用户名

    想知道您是否知道是否有一种巧妙的方法可以从 shell 获取完整的用户名 示例 如果我的 UNIX 用户名是 froyo 那么我想获取我的全名 在本例中 如系统中注册的那样 froyo Abhishek Pratap Finger 命令可以
  • 如何以编程方式伪造 UIButton 的触摸事件?

    我正在编写一些单元测试 并且由于这个特定应用程序的性质 重要的是我要达到尽可能高的水平UI链尽可能 因此 我想做的是以编程方式触发按钮按下 就好像用户按下了按钮一样GUI 是的 是的 我could只需致电IBAction选择器 但同样 这个
  • 树的子节点/节点上的单击事件

    我真的对 ExtJs 树对象感到困惑 我的代码有问题 但我不知道是什么 考虑我有这个代码 var store Ext create Ext data TreeStore root expanded true children text de
  • 在Python中打开网站框架或图像

    所以我对 python 相当熟练 并且经常使用 urllib2 和 Cookies 来实现网站自动化 我刚刚偶然发现了 webbrowser 模块 它可以在默认浏览器中打开一个网址 我想知道是否可以从该 url 中仅选择一个对象并打开它 具
  • Javascript For 循环在 dom 元素上执行[重复]

    这个问题在这里已经有答案了 我有 javascript 代码来获取具有类名称的元素 并迭代从元素中删除该类 var elements document getElementsByClassName test console log Leng
  • 在线和离线管理 iPhone 应用程序

    我被困在一个点上 我也在离线管理我的应用程序 第一次我从网络服务获取所有配置文件数据并将其路径存储到 sqlite 中时 我在更新这些数据时遇到问题 例如如果图像发生更改 我应该如何通知我的应用程序 我在 Google 上搜索了它 唯一的解
  • C#:自定义转换为值类型

    是否可以将自定义类转换为值类型 这是一个例子 var x new Foo var y int x Does not compile 是否有可能实现上述情况 我需要超载一些东西吗Foo 您将必须重载强制转换运算符 public class F
  • DataGridView 行背景颜色没有改变

    我想根据加载时的特定条件更改 DGV 行的背景颜色 即使在 Windows 窗体中也是如此 但我看不到任何 DGV 行的颜色有任何变化 谁能告诉我如何解决这个问题 private void frmSecondaryPumps Load ob
  • CoreGraphics 在 iPhone4 上比在 3G/3GS 上慢

    我有一个用 CoreGraphics 绘制的图表 该图表可以水平滚动 并且当我们滚动它时就会绘制它 问题是 在 3G 3GS 上 滚动的速度和性能良好 但在 iPhone 4 上却比预期慢 我认为这是与 iPhone 4 的高分辨率有关的问
  • 使用循环(或向量化)按向量中的多个元素对列表进行子集化

    我有3个清单data frames my list lt list a data frame value c 1 5 class c letters 1 3 a b b data frame value c 6 1 class c lett
  • Devise + CanCan 只是阻止其他用户编辑对象

    您如何防止其他用户编辑对象 例如不属于自己的配置文件对象 大多数在线示例都是具有多个用户角色的复杂示例 我无法使其正常工作 但必须很简单 def initialize user can update Profile do profile p
  • 如何在 C# 中更改公共 IP 地址

    我正在创建一个 C winform 应用程序 我想在其中更改公共 IP 地址 而不是像 Hotspot Shield ZenMate OpenVPN 等那样更改 IPv4 地址 我已经检查了以下链接 但没有找到足够的帮助 所以我发布了这个问
  • 有没有办法从另一个包访问结构体的私有字段?

    我在一个包中有一个具有私有字段的结构 package foo type Foo struct x int y Foo 另一个包 例如 白盒测试包 需要访问它们 package bar import foo func change foo f
  • 谷歌图片搜索API

    我有一个网站 用户可以在其中提交图片 我想用这些图片自动在 Google 上进行搜索 以尽量减少图片被从其他网站盗用的可能性 我知道 Firefox 扩展 但这需要我右键单击每张图片并等待结果出现 我想自动化这个 我一直在寻找 API 但
  • Android 中的垂直(旋转)标签

    我需要两种在 Android 中显示垂直标签的方法 水平标签逆时针旋转 90 度 字母在侧面 带有字母的水平标签 如商店招牌 我是否需要为这两种情况 一种情况 开发自定义小部件 我可以使 TextView 以这种方式呈现吗 如果我需要完全自
  • InnoDB:使用事务批量插入或组合多个查询?

    做批量的时候INSERT在InnoDB中 我应该使用事务吗 START TRANSACTION INSERT INTO tbl name a b c VALUES 1 2 3 INSERT INTO tbl name a b c VALUE