1

我有 3 个选项可以将新的 UNIQUE id (primary_key) 添加到我的一个特定表中。

  1. 创建 AUTO_INCREMENT 字段。
  2. SELECT id FROM table ORDER BY id DESC LIMIT 1
  3. 从表中选择 MAX(id)

我目前正在使用选项2,因为人们可能会从他们访问的表中删除行,因此 id 被释放,否则我将使用选项1

你推荐什么?

4

3 回答 3

3

您应该始终使用选项 1(为了避免两个同时插入的客户端在完成插入之前 读取当前最大值的竞争风险)。通过使用使读写操作原子化的锁来防止这种危险的发生。idAUTO_INCREMENT

于 2012-10-09T08:03:46.690 回答
1

选项1

自动递增

这是实现和维护的最简单方法

于 2012-10-09T07:58:17.723 回答
1

创建一个数据库序列并改用它,即使在多线程访问场景和分布式环境以及集群环境中,它也会给您更多的说服力。

于 2012-10-09T08:09:02.020 回答