我打算预约系统。我脑子里还有一个问题。
通常的要求是避免为这种系统重复预订相同的插槽。我的问题是实现这一目标的实际方法。
假设我要在事务中执行预订部分逻辑(其隔离级别设置为可序列化),我建议的程序将是: 1.选择当前预订状态的数据。 2.检查插槽是否可以预订。如果是,请通过插入来保留插槽。如果没有,请保留其他插槽(后面有一些逻辑用于挑选其他插槽)。
我的问题是,我是否应该在步骤1中放置“XLock”以避免其他交易在当前交易完成之前知道预订状态?
因为看起来使用xlock放置select很少并引入死锁。它可能会减慢系统速度。 (这是我从网上研究过的。)
感谢。