测验:事务与 ACID
在同一个事务内,同一行被读取两次,但值不同。这种现象的名称是什么?
- 脏读
- 幻读
- 不可重复读
- 写倾斜
由于两个事务在相同条件下读取集合并更新不同的行,因此不变量被破坏。什么可以防止这种情况发生?
- 可串行化或显式锁定或约束
- 读已提交
- 可重复读取
- 读未提交
如果 PostgreSQL 中请求 Read Uncommissed 怎么办?
- 可能会出现脏读
- 发生错误
- 语法已被接受,但实际上它以已提交读的方式运行。
- 性能明显提升
将隔离级别提高到可重复读以上时,应用程序必须准备什么?
- 重试逻辑,捕获序列化失败错误并重新执行整个事务。
- 设置为随着锁等待的增加而增加连接池大小
- 为目标表添加索引,减少冲突
- 配置只读副本以转移读取负载
以下哪项适合安全地允许多个工作人员在任务队列表中拾取不同的任务?
- 选择...进行分享
- 选择...进行更新 跳过锁定
- 将隔离级别降低到未提交读
- 索引提示
保证持久性的代表性机制是什么?
- 索引——加速查找的数据结构
- 预写日志 (WAL) — 日志在数据页之前写入磁盘。
- 连接池——预创建和重用连接
- 规范化——消除重复以防止更新异常
防止重复预订的最有效方法是什么?
- 在应用程序中搜索后,如果没有找到,则插入。
- 将隔离级别提升为可重复读
- 强制数据库强制执行唯一索引或排除约束
- 插入前稍等片刻