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

时间:2017-03-31 11:20:08

标签: mysql database-performance auto-generate

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

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

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

ABC0000001,其中'ABC'是部门的首字母缩写,'000000001'是自动增量。对于不同的部门,我们已经有不同的首字母缩写词。

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

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

1 个答案:

答案 0 :(得分:0)

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

AUTO_INCREMENT已得到很好的优化;其他任何事情都介于轻微和严重低效之间。例如,触发器可能会使INSERT的成本加倍,但如果INSERTs不是性能问题,那么“那又是什么”。

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