在 MySQL 中实现分布式锁可以有多种方式,以下是一种常见的基于表的实现方式: 1. 创建锁表 首先,创建一个用于存储锁信息的表,例如: ```sql CREATE TABLE lock_table ( lock_name VARCHAR(255) PRIMARY KEY, locked_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, locked_by VARCHAR(255) ); ``` 2. 获取锁 要获取锁,可以执行以下 SQL 语句。如果成功插入数据,表示获取到锁;如果插入失败(因为存在相同的 `lock_name` 记录),则表示锁已被其他进程获取。 ```sql INSERT INTO lock_table (lock_name, locked_by) VALUES ('lock_name_value', 'your_process_id') ON DUPLICATE KEY UPDATE locked_at = CURRENT_TIMESTAMP; ``` 3. 释放锁 释放锁时,删除对应的锁记录: ```sql DELETE FROM lock_table WHERE lock_name = 'lock_name_value' AND locked_by = 'your_process_id'; ``` 这种方式实现的分布式锁相对简单,但存在一些局限性,例如性能可能不是特别高,并且在高并发场景下可能会出现一些问题。在实际应用中,还可以考虑使用更专业的分布式锁解决方案,如基于 Redis 等的分布式锁。 [2024-07-30 11:29:31 | AI写代码神器 | 285点数解答]