开发者社区> 问答> 正文

到底能不能用uuid做主键(数据库MySql,后台Hibernate)?如果用数值类型主键,该怎么做呢?

有一个项目,还在开发阶段,因为数据库是mysql,第一次用,有些地方还不熟,现在表的主键用的是uuid,但最近看了些文章,说uuid影响性能,而且从数据库上讲,整型效率要高于字符型。不知道mysql有没有类似oracle的seq这种东东,除了uuid,针对mysql还有那种生成主键的策略会好一些,请高人指点。

展开
收起
小旋风柴进 2016-03-10 15:53:11 3077 0
1 条回答
写回答
取消 提交回答
  • Oracle中没有专门的uuid类型,可以用raw存储uuid,raw是个二进制类型,raw(16)满足16位uuid。使用UUID做主键,在高并发的集群中有性能优势——可以避免热块产生(序列数字是连续的,相近的ID一般在同一个数据块),但会导致索引的空闲率较高。16位的raw比number占用字节更少,索引还一样用

    2019-07-17 18:57:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载

相关镜像