数据库的主键应该选择啥数据类型比较好

主键的话我的建议是自增整形,不要使用与业务相关的名字,仅用id即可,而效率问题都可以用索引来解决。因为主键的不可变的特性,如果选择不慎,会在未来产生难以预期的问题。比如你用int型做文章的id,但是如果在未来某一天文章数超过了无符号整形的最大值,你将没法将主键修改成bigint。或者为了给用户起一个唯一id用了自增主键,但是如果未来有其他的项目用户要合并进来,他也是这么做的。这时候为了区分不同的项目可能要在这个用户id前加一个前缀,这时候也没法修改主键的值。主键之所以叫做主键就是到什么时候都不能改,所以最好的方案就是使用自增数字id做主键,并且不要给这个主键赋予一个业务相关的意义。
■网友
如果是微型系统,而且肯定数据库建好了就不会动了,数据也不会去动,那么数据库主键就用自增int就够了。
如果是比较中大型的系统,比如电商网站,erp,crm之类的系统,主键最好用UUID,可以保证数据的唯一性,而且数据迁移数据合并分库分表的时候会更省心,如果是int主键,数据迁移和合并会让你很头疼,如果涉及到外键关联,更要考虑主键ID重复性的问题,所以宁肯牺牲一点性能使用UUID做主键,长期来讲带来的好处远超过int带来的这点性能优势。
【数据库的主键应该选择啥数据类型比较好】

■网友
都可以
■网友
我一般用int(11),用完就是1千亿,但是如果真超过1千亿的话,基本都要重写了,架构都要换了。


    推荐阅读