开发者社区> 问答> 正文

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

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

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

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

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像