三级封锁协议的 SQL 并发控制,属于那种看起来复杂,其实用起来还挺顺的工具。
T1 级封锁协议要求你在读取数据之前先加个共享锁(S 锁
),事务提交之前这锁谁也动不了,读起来安全感十足;T3 级再进阶一点,不光能防丢修改,还能避免读脏数据和不可重复读的问题,适合对数据一致性要求比较高的场景。
像你在用MySQL
或Oracle
做事务时,这套机制真的挺顶用的。不管是你在做库存系统还是订单支付,只要多个事务一起上,封锁策略选对了,系统就不会乱套。
想了解更多细节,下面这些文章也蛮实用的:数据库封锁机制详解讲得细;一级封锁协议适合入门看看;InnoDB 事务锁也值得读读,尤其是你在用MySQL
时。
如果你最近正好在调多事务的并发问题,不妨试试按照 T3 那一套来走,稳定性和一致性都还不错,响应也快,代码也不复杂。