数据库的主键应该选择啥数据类型比较好
主键的话我的建议是自增整形,不要使用与业务相关的名字,仅用id即可,而效率问题都可以用索引来解决。因为主键的不可变的特性,如果选择不慎,会在未来产生难以预期的问题。比如你用int型做文章的id,但是如果在未来某一天文章数超过了无符号整形的最大值,你将没法将主键修改成bigint。或者为了给用户起一个唯一id用了自增主键,但是如果未来有其他的项目用户要合并进来,他也是这么做的。这时候为了区分不同的项目可能要在这个用户id前加一个前缀,这时候也没法修改主键的值。主键之所以叫做主键就是到什么时候都不能改,所以最好的方案就是使用自增数字id做主键,并且不要给这个主键赋予一个业务相关的意义。
■网友
如果是微型系统,而且肯定数据库建好了就不会动了,数据也不会去动,那么数据库主键就用自增int就够了。
如果是比较中大型的系统,比如电商网站,erp,crm之类的系统,主键最好用UUID,可以保证数据的唯一性,而且数据迁移数据合并分库分表的时候会更省心,如果是int主键,数据迁移和合并会让你很头疼,如果涉及到外键关联,更要考虑主键ID重复性的问题,所以宁肯牺牲一点性能使用UUID做主键,长期来讲带来的好处远超过int带来的这点性能优势。
【数据库的主键应该选择啥数据类型比较好】
■网友
都可以
■网友
我一般用int(11),用完就是1千亿,但是如果真超过1千亿的话,基本都要重写了,架构都要换了。
推荐阅读
- 想要入门图像处理,应该从哪本书看起
- 应该怎样理解会员服务的法律性质
- 电视盒子能用代理吗
- 工作3、4的人怎样转行当警察
- 假如把中国电信监测到的3亿人一个月每天上网的所有行为打个包,哪些数据应该被提出从这些数据能得到啥
- 是否该停止密码掩饰了
- 考研数据库方向
- 哪个数据库,可以直接做数据透视图(navicat类的也可以)
- 通信专业大二在读,以后想从事软件方向。请问现在应该准备些啥
- 计算机专业大三,应该扎实学好基础专业课,还是该随大流去参加培训机构培训
