我有 3 个选项可以将新的 UNIQUE id (primary_key) 添加到我的一个特定表中。
- 创建 AUTO_INCREMENT 字段。
- SELECT id FROM table ORDER BY id DESC LIMIT 1
- 从表中选择 MAX(id)
我目前正在使用选项2,因为人们可能会从他们访问的表中删除行,因此 id 被释放,否则我将使用选项1
你推荐什么?
我有 3 个选项可以将新的 UNIQUE id (primary_key) 添加到我的一个特定表中。
我目前正在使用选项2,因为人们可能会从他们访问的表中删除行,因此 id 被释放,否则我将使用选项1
你推荐什么?
您应该始终使用选项 1(为了避免两个同时插入的客户端在完成插入之前 读取当前最大值的竞争风险)。通过使用使读写操作原子化的锁来防止这种危险的发生。id
AUTO_INCREMENT
选项1
自动递增
这是实现和维护的最简单方法
创建一个数据库序列并改用它,即使在多线程访问场景和分布式环境以及集群环境中,它也会给您更多的说服力。