zoukankan      html  css  js  c++  java
  • 主键uuid

    UUID是一堆-分割的16进制的长度为32的数字,占16byte。
    是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。
    在UUID的算法中,可能会用到诸如网卡MAC地址,IP,主机名,进程ID等信息以保证其独立性。

    通俗讲UUID就是可以让项目每条数据具有唯一标识。在java向数据库插入一条数据之前生成一个UUID码当主键,这样那条数据就具有了唯一标识,效果比ID主键自增长要好。
    代码如下:
    String guid = UUID.randomUUID().toString().replaceAll("-", "");
    UUID的生成类参考
    在分布式的软件系统中(比如:DCE/RPC, COM+,CORBA)就能体现出来,它能保证每个节点所生成的标识都不会重复,并且随着WEB服务等整合技术的发展,UUID的优势将更加明显。根据使用的特定机制,UUID不仅需要保证是彼此不相同的,或者最少也是与公元3400年之前其他任何生成的通用唯一标识符有非常大的区别。UUID最少在3000+年内不会重复。
    通用唯一标识符还可以用来指向大多数的可能的物体。微软和其他一些软件公司都倾向使用全球唯一标识符(GUID),这也是通用唯一标识符的一种类型,可用来指向组建对象模块对象和其他的软件组件。第一个通用唯一标识符是在网络计算机系统(NCS)中创建,并且随后成为开放软件基金会(OSF)的分布式计算环境(DCE)的组件。

    优点:
    能够保证独立性,程序可以在不同的数据库间迁移,效果不受影响。
    保证生成的ID不仅是表独立的,而且是库独立的,这点在你想切分数据库的时候尤为重要。

    缺点:
    太长了,32字符长度(去掉"-"),比较占地方,和INT类型相比,存储一个UUID要花费更多的空间。

  • 相关阅读:
    自定义打包工具对应的解析代码
    自定义的打包工具源码
    一种C语言实现面向对象特性的继承,多态
    buffers和cached的区别
    初识rt-thread杂记
    一种多叉树的实现,提供树形结构打印,树转表输出等功能
    关于rtsp的时间戳问题
    一种基于状态机(表)的小组件
    一种基于消息发布-订阅的观察者模式实现
    命令解析类代码重构
  • 原文地址:https://www.cnblogs.com/cashew/p/11641391.html
Copyright © 2011-2022 走看看