会导致数据库并发性能下降的因素有?()
A. 大量长事务持有锁
B. 表锁滥用
C. 合理使用行锁
D. 频繁出现死锁
1 个赞
正确答案是 A、B、D 。
详细解析:
-
选项 A (大量长事务持有锁) 正确 :
当存在长时间运行的事务时,它们持有的锁在较长时间内不会被释放。这会阻塞其他需要访问相同数据资源的并发事务,导致严重的排队等待现象,从而显著降低数据库的整体并发性能。 -
选项 B (表锁滥用) 正确 :
表锁是一种粒度非常粗的锁机制。如果在高并发场景下滥用表锁,会导致整个表被锁定,使得所有针对该表的并发读写操作都被迫串行化或阻塞,严重破坏并发能力。 -
选项 C (合理使用行锁) 错误 :
行锁是粒度最细的锁机制之一。“合理使用”行锁可以最大程度地减少不同事务之间的冲突与相互等待,这是提升而非降低数据库并发性能的最佳实践。 -
选项 D (频繁出现死锁) 正确 :
死锁是指两个或多个事务互相等待对方释放资源而陷入僵局。虽然数据库系统有死锁检测与回滚机制,但频繁发生死锁会导致大量事务被强制回滚并重新执行,浪费宝贵的 CPU 和 I/O 资源,进而引发严重的并发性能下降。
ABD