当前位置: 首页 > 面试题库 >

哪个更快:多个单INSERT或一个多行INSERT?

凤棋
2023-03-14
问题内容

我正在尝试优化将数据插入MySQL的代码的一部分。我应该将INSERT链接起来以制作一个巨大的多行INSERT还是更快地使用多个单独的INSERT?


问题答案:

https://dev.mysql.com/doc/refman/8.0/zh-CN/insert-
optimization.html

插入行所需的时间由以下因素决定,其中数字表示近似比例:

  • 连接:(3)
  • 向服务器发送查询:(2)
  • 解析查询:(2)
  • 插入行:(1×行大小)
  • 插入索引:(1×索引数)
  • 闭幕:(1)

由此显而易见,发送一条大语句将为您节省每个插入语句7的开销,在进一步阅读本文时还说:

如果要同时从同一客户端插入许多行,请使用带有多个VALUES列表的INSERT语句一次插入几行。这比使用单独的单行INSERT语句要快得多(某些情况下要快很多倍)。



 类似资料:
  • 问题内容: 我正在编写一种算法,在其中寻找一对值,这些值加在一起会导致我正在寻找另一个值。 我发现使用a 可以从O(n²)加速我的算法。后来我意识到我并没有真正使用我包含的值,因此就足够了。 我在Google上进行了幂搜索,但是在我的问题的标题中找不到这些方法的渐近运行时间的任何信息。 您能指出我应该在哪里寻找这些信息吗? 问题答案: 后来我意识到我并没有真正使用我包含的值,因此就足够了。 不仅是

  • 问题内容: 如何查询这两个?我将数据插入两个表中。 问题答案: 目的是什么?您是否要从一种HTML表单将数据插入到两个不同的表中?我不知道存储过程,但是我在类似的情况下使用事务: 假设在表中是FK,并且是自动递增字段。我有一个名为dbSingle的类,其中包含查询功能和数据库连接。希望它足够清晰,可以与常规mysqli函数一起使用。

  • 问题内容: 我正在构建一个程序,用于存储公司的新闻头条以及来自各种来源的时间戳。 假设公司的数目为1000。就像苹果,谷歌,微软等。 因此,我可以考虑两种选择。 一个有很多行的表(上面的代码只是一个例子)。 ( news_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, company VARCHAR(10) NOT NULL, timestamp TIMES

  • 问题内容: 我有一张叫订单的桌子。订单上的一列是customer_id, 我有一个名为“ customers”的表,具有10个字段 给定两个选项,如果我要建立一个订单对象数组并将其嵌入到一个客户对象中,那么我有两个选择。 选项1: 一种。首先查询订单表。b。遍历记录并查询人员表以获取人员的记录 这将是这样的: 选项2: 一种。在所有领域参加 #2是显而易见的,因为您只执行一个查询,而不是1 + [

  • 我有一个案例,我有一组字段要在Solr中更新。我接收到的输入是映射的形式,键是字段名,值是更新的值。我有一个疑问,在这种情况下,我应该使用curl更新doc还是solrj,在那里我必须将映射转换为solrInputDocument,然后调用add命令。第一种方法会比第二种方法更快吗?

  • 我有一个表,其中有一个主id列(自动索引)、两个子id列(也已索引)和12列类型geometry(Polygon)。如果我要更新此表上的约200万行,运行约200万条单独的更新语句是否更快 还是像下面的答案那样,执行较少数量的较大更新语句更快 如果是后者,你对什么是好的有什么建议吗?是 = ~2mil,还是一些较小的子集(我会重复直到它们全部完成)? 编辑:显然,在前一种情况下,我会使用准备好的语