MySQL 自动生成的 ID 与自定义自动生成的 ID

MySQL autogenerated id vs custom autogenerated id

我不得不说这是我的第一个问题。目前我在 MySQL 服务器中有一个 table ‘journals’,其 ID 自动生成并自动增量:

´id´ int(10) NOT NULL AUTO_INCREMENT,
-- more columns
PRIMARY KEY (´id´)

我正在考虑为自定义 ID 修改此 ID,因为客户希望通过以下方式生成 ID:

ABC0000001,其中“ABC”是部门的首字母缩写词,“0000001”表示自动递增。对于不同的部门,我们已经有了不同的首字母缩略词。

我可以通过触发器获得此 ID(类似示例:How to make MySQL table primary key auto increment with some prefix),但我对性能和效率有疑问,因为我可以通过初始解决方案和另一列获得相同的 "result"存储部门的首字母缩写词。在后端,我将创建一个方法在将结果返回到前端之前统一两列,并创建另一个方法将搜索拆分为 table。

有没有人遇到过类似的情况,可以在性能或效率方面指导我解决这个问题?提前致谢。

创建自定义生成的 ID 很有趣,但也很受虐。你的潜意识目标是什么?

AUTO_INCREMENT优化的很好;其他任何东西都介于效率略低和严重之间。例如,触发器可能会使 INSERT 的成本翻倍,但如果 INSERTs 不是性能问题,则 "so what".

半相关:UUID 对于 巨大的 表来说效率非常低 -- 由于它们的随机性。