gpt4 book ai didi

sql-server - 数据库引擎如何处理并发插入?

转载 作者:太空狗 更新时间:2023-10-30 01:55:08 24 4
gpt4 key购买 nike

我试图用谷歌搜索这个问题,但没有发现与此类似的问题,所以我在这里问。这似乎是一个菜鸟问题,但我真的不知道数据库如何处理并发插入。

假设有 100 个用户启动了插入查询。数据库是同时插入多条记录(同一秒,同一纳秒等)还是一条接一条地插入每条记录?数据库在多线程环境中运行,因此自然的答案是同时触发插入。

最佳答案

像 SQL Server 这样的数据库引擎(我假设你问的是它,因为你标记了它)将使用某个版本的 ARIES Write-Ahead Logging协议(protocol)。由于这样的协议(protocol)需要将日志作为顺序流写入,因此它遵循并发触发 100 个插入的规则,即使在 100 CPU 服务器上,当它们访问日志时也必须在内部序列化。因此,正如您所建议的那样,“纳秒”级别的并发在理论上是不可能的。该主题在多个地方进行了描述,请参阅 Write-Ahead Transaction Log , Transaction RecoveryHow It Works: Bob Dorr's SQL Server I/O Presentation .

但是,从实际的角度来看,你应该从交易和isolation levels的角度来思考.

关于sql-server - 数据库引擎如何处理并发插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8889478/

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