mysql主键是使用id还是uuid
本身android开发,后来被叫去做java后台,没人带自己学,就网上查了下数据库设计,之前一直在意的一个是:有的说数据库主键用 自增id,有的说用 uuid,还有雪花id,各有说法,
后面我就所有表的主键都用自增id,然后也有对应的表id用uuid,关联都是用uuid去查,这样是否有弊端?
我自己用的读取uuid代码:
public static String getUuid(){
return UUID.randomUUID().toString().replaceAll("-", "");
} uuid还是有概率重复的。 以MySQL为例,主键默认的就是自增ID
业务量不大的话,ID和UUID其实没什么区别~~~ 保留自增ID,业务ID采用UUID。 数据量不大的话 就直接用自增id呗 一般要用到雪花id 都是大公司 数据量巨多的业务,大部分是面试吹牛逼用 Innodb引擎的话,索引和数据是一个文件,b+树叶子节点存储数据。
建议使用自增id作为主键,因为id具有连续性的话数据也会连续的存储在磁盘。查找数据时io比随机id要少。 能用自增用自增,不行就雪花算法 雪花算法不难,直接用,最好还是纯数字的作为主键,如果你是分布式应用就用雪花算法,如果是单机项目,用自增就行 大多数情况下都会使用自增id 感觉自增用着挺靠谱,uuid看着乱不舒服
页:
[1]
2