2
0
Fork 0
mirror of https://github.com/Vonng/ddia.git synced 2026-06-25 19:06:55 +08:00

Update ch7.md

这里面的人类,需要与上段里面介绍的人类行为对应起来,单纯用一个“人类”有点欠缺
This commit is contained in:
Zhaoyang 2021-12-19 17:54:24 +08:00 committed by GitHub
parent 48c792c996
commit c099154d53
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

2
ch7.md
View file

@ -616,7 +616,7 @@ COMMIT;
不幸的是人类做出决定和回应的速度非常缓慢。如果数据库事务需要等待来自用户的输入则数据库需要支持潜在的大量并发事务其中大部分是空闲的。大多数数据库不能高效完成这项工作因此几乎所有的OLTP应用程序都避免在事务中等待交互式的用户输入以此来保持事务的简短。在Web上这意味着事务在同一个HTTP请求中被提交——一个事务不会跨越多个请求。一个新的HTTP请求开始一个新的事务。
即使已经将人类从关键路径中排除,事务仍然以交互式的客户端/服务器风格执行,一次一个语句。应用程序进行查询,读取结果,可能根据第一个查询的结果进行另一个查询,依此类推。查询和结果在应用程序代码(在一台机器上运行)和数据库服务器(在另一台机器上)之间来回发送。
尽管已经将人类操作行为导致的因素从关键路径中排除,事务仍然以交互式的客户端/服务器风格执行,一次一个语句。应用程序进行查询,读取结果,可能另一个查询依赖第一个查询的结果等等。查询和结果在应用程序代码(在一台机器上运行)和数据库服务器(在另一台机器上)之间来回发送。
在这种交互式的事务方式中,应用程序和数据库之间的网络通信耗费了大量的时间。如果不允许在数据库中进行并发处理,且一次只处理一个事务,则吞吐量将会非常糟糕,因为数据库大部分的时间都花费在等待应用程序发出当前事务的下一个查询。在这种数据库中,为了获得合理的性能,需要同时处理多个事务。