数据库并发读写场景下请求总处理时长计算问询
数据库并发请求处理时长计算解答
先得把题目里的核心规则和实际数据库的行级锁逻辑结合起来(毕竟操作的是同一行,这是关键),再一步步计算两组请求的总耗时:
核心前提梳理
- 数据库的并发能力:最多同时处理2个写操作 或 3个读操作,但注意:操作同一行时,写操作之间是互斥的(同一时间只能有一个写操作在该行执行),读写操作之间也是互斥的(写的时候不能读,读的时候不能写)——这是数据库行锁的常规逻辑,结合选项也能验证这一点
- 单个读/写操作耗时:固定10ms
- 请求特征:所有请求同时到达,且操作同一张表的同一行
第一组:4个写请求 + 4个读请求
- 写请求阶段:因为同一行写互斥,只能一个接一个执行。4个写请求每个耗时10ms,总耗时是
4 * 10ms = 40ms - 读请求阶段:必须等所有写操作完成后才能开始(读写互斥)。4个读请求最多同时处理3个,所以分两批:
- 第一批3个读请求,并行执行,耗时10ms
- 第二批剩下的1个读请求,耗时10ms
读请求总耗时是10ms + 10ms = 20ms
- 总处理时长:写阶段+读阶段的总耗时是
40ms + 20ms = 60ms
第二组:2个写请求 + 3个读请求
- 写请求阶段:同一行写互斥,2个写请求串行执行,总耗时
2 * 10ms = 20ms - 读请求阶段:写完成后,3个读请求可以全部并行处理,耗时10ms
- 总处理时长:
20ms + 10ms = 30ms
所以最终对应的正确选项是:1. 60ms 2. 30ms
内容的提问来源于stack exchange,提问作者GARVIT TYAGI
相关产品推荐
相关产品推荐

