SSH项目中啥时候用uuid,啥时候用identity?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSH项目中啥时候用uuid,啥时候用identity?相关的知识,希望对你有一定的参考价值。

<generator class="identity" />
<generator class="uuid" />
这个是生成128位的varchar,identity这个是主键自增。uuid不是唯一的吗,identity生成也是唯一的,那么他们各自都在什么时候应用呢?

路过, 还是决定回答一下吧。

假如你在数据规划的时候,采用了分库方式对数据进行切分。库是分布的,你无法控制每个库的自增序列开始点,并且也无法预计最终ID会涨到什么规模。你要构建集群内唯一主键,数字自增长是会造成集群内实体冲突滴。这种情况下采用UUID。

至于自增长主键,int的检索速度要明显优于varchar,因此当你确定你的数据规模达不到切库这样的级别,一个数据库足够的话,没必要UUID的。uuid一般用于集群计算环境。
参考技术A UUID 可以保证百亿次都是唯一的吗?
kimmking(xxx) 22:48:01
安全性 可移植性
整个时空内不会重复
identity:由底层数据库生成标识符identity是由数据库自己生成的,但这个主键必须设置为自增长,前提条件是低层数据库支持自动增长字段类型

以上是关于SSH项目中啥时候用uuid,啥时候用identity?的主要内容,如果未能解决你的问题,请参考以下文章

请问HTML标签中啥时候用NAME,啥时候用ID,请通俗举例说明。还有JAVASCRIPT中啥时候用THROW语句?

C#中啥时候用小驼峰命名“camelCap”,啥时候用下划线命名“button1_Click”?

java中啥时候用/n ,啥时候用 \r,我从来没有用过?

请问在C程序中啥时候用int main() 啥时候用 void main()。二者是不是可以相互代替?

sql语句中啥时候用单引号啥时候用双引号?如图中的红为啥用双引号?

举一个好例子说明java中啥情况下用过滤器,啥时候用拦截器,啥时候用侦听(没分了,但想知道真相)