通过数据库也可以实现分布式锁,但是在高并发的情况下,数据库压力较大,所以很少使用。

    比如超卖问题:
    把条件判断放在 sql 中

    1. <update id="decreaseItemCount">
    2. update
    3. items_spec
    4. set
    5. stock = stock - #{pendingCounts}
    6. where
    7. id = #{spech}
    8. and
    9. stock >= #{pendingCounts}
    10. </update>