首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关系数据库是并行还是顺序执行insert语句?

问关系数据库是并行还是顺序执行insert语句?
EN

Stack Overflow用户
提问于 2012-07-09 14:57:37
回答 1查看 676关注 0票数 1

如果两个用户同时在同一个目标表上执行INSERT INTO语句,这些语句是并行执行还是顺序执行?

此行为是否会根据目标表是否具有主键而发生变化?

这是为所有关系数据库定义的规则,还是不同的供应商以不同的方式实现它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-09 15:57:38

通常,如果定义了主键,它们将(应该)并行执行。

这种行为在很大程度上取决于DBMS。例如,如果对表执行MyISAM,则带有DML的MySQL将阻止对表的任何进一步访问。对于默认安装和较早的DB2版本中的SQL Server也是如此。

通常,如果数据库管理系统使用MVCC (Oracle、PostgreSQL、Firebird、MySQL/InnoDB...)然后,您可以预期插入将并行运行。

如果两个事务插入相同的主键值,则会阻塞并发插入。在这种情况下,第二个事务将需要等待第一个事务提交(然后第二个事务将获得pk冲突错误)或回滚(第二个事务将成功)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11390323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档