gpt4 book ai didi

mysql - 一次插入多个

转载 作者:行者123 更新时间:2023-11-29 03:50:34 25 4
gpt4 key购买 nike

我需要一次在一个表中插入大约 2500-3000 行数据。我需要为 MySQL 和 SQL Server 执行此操作。所以我找到的可能的解决方案是

  1. cfloop 中编写 cfquery
  2. cfquery 中使用 cfloop 生成类似 INSERT INTO tbl VALUES((),(),()) 的 sql 语句。但是这个问题语法是一次只能插入 1000 条记录,不能超过 1000 条记录。我需要更多。

谁能建议我处理这种情况的最佳方法是什么?

最佳答案

当您处理数千条记录时,小的增量延迟开始迅速累积。由于网络流量增加、内部数据库操作等多种原因,逐行插入此数量的行将比发出 BULK INSERT 语句花费更多的时间。

我假设您正在接收文件中的数据。在这种情况下,这些是您需要采取的一般步骤:

  1. 验证数据。很重要。即使您在受信任的环境中从受信任的来源接收数据,文件也很容易以多种方式损坏、截断或损坏。由于服务器版本(SQL Server 2000 与 2008)或供应商(您的来源可能是 Oracle 数据库)之间存在细微但有时显着的差异,它们也可能存在差异。
  2. 发出 BULK INSERT语句,假设您使用的是 SQL Server 2005 或更新版本。我认为该命令在 2005 版和更新版本之间的工作方式存在一些差异,因此请在尝试之前检查语法。
  3. 根据您的配置和您可能需要的任何其他内容,您可能想要更新表上的索引,甚至重新创建它们。同样,这取决于 table 的大小和您的需要。该过程的这一部分可能会花费最长的时间,甚至可能会使表格脱机,但您的用户会非常感谢您这样做了。

仔细规划整个插入过程是值得的,这样您就不会中断正常的业务事件并继续提供最好的服务和可用性。

作为结束语,您应该使用不同的方法运行测试。一对一与批量,以确保您获得最佳性能。但是,我相信您总会发现批量或批量插入是可行的方法。他们将该功能添加到 Transact-SQL 语言中的原因是性能。这将节省网络带宽、资源和时间。

关于mysql - 一次插入多个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28501505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com