gpt4 book ai didi

MySQL 与 MS SQL Server — 执行插入/更新的并行进程

转载 作者:行者123 更新时间:2023-11-29 12:05:29 24 4
gpt4 key购买 nike

我正在使用第 3 方 ETL 应用程序(Pentaho/Kettle/Spoon)——所以不幸的是我不确定确切的 SQL 查询,但我可以尝试不同的手动查询。

我只是想知道为什么...MySQL似乎允许多个进程同时执行插入,但如果找到,则更新...查询。

MS SQL 不会...当一个查询正在执行插入/更新时,它会“锁定”行...并且如果另一个查询尝试插入/更新相同的数据,则会抛出错误。

我想这是有道理的......但我只是有点恼火,MySQL 允许这样做,而 MS SQL 不允许。

有什么办法可以解决这个问题吗?

我只是想要一种尽可能快的方法将 1000 条记录的列表插入/更新到数据表中。过去,我只是将这些数字分为 20 个进程,更新 50 条记录进行插入/更新...这是并行工作的,因为 1000 条记录都不是重复的...它们只是表中已有的一些重复...所以它们可以按任何顺序插入/更新,只要发生即可。

有什么想法吗?谢谢

最佳答案

MySQL默认使用ISAM存储引擎,不支持事务。 SQL Server 是一个 RDBMS,支持事务,正如您所观察到的,尽管您可以调整隔离级别来执行有风险的操作,例如未提交的读取(很少是一个好主意)。

如果您希望 MySQL 数据库支持事务,则需要使用选项 ENGINE=INNODB 显式创建表。旧版本还支持 ENGINE=BDB,这是 Berkeley 数据库引擎。有关 InnoDB 的更多详细信息,请参阅 MySQL 文档 http://dev.mysql.com/doc/refman/5.7/en/innodb-storage-engine.html

关于MySQL 与 MS SQL Server — 执行插入/更新的并行进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31551237/

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