zoukankan      html  css  js  c++  java
  • 讨论:GUID与int自增列的问题

     近日,在CSDN社区中,看到有人在讨论:GUID与int自增列的问题,个人觉得很不错,故整理了一下大家的观点,以观后效!我没有真正的用过GUID类型。所以就不发言了。且看各位高手表演:

    楼主:

    谈谈GUID的问题!!!!!!!!!!!!

    一、主键用int自增列好,还是用GUID好

    二、如果用GUID做主键,是所有表都用GUID做主键,还是只需要将常用的表,如新闻系统中,只将文章表的主键用GUID?

    沙发:

    个人感觉用int自增列好,已经用N年了。
    不过你如果要用GUID的话,主要看你什么用途?

    2楼:

    要说好处理的话,还是自增列好处理些 个人感觉啊

    不过全局唯一标识符,也就是GUID可以唯一指定一项 也不错 我觉得这个要看具体情况来分析了

    3楼:

    一般的系统都是采用INT自增列。
    GUID 一般用在大数据量的处理上。
    4楼:

    GUID 主要用于在拥有多个节点、多台计算机的网络中,分配必须具有唯一性的标识符

    6楼:

    一般用自增的。需要唯一标示的用GUID。
    一般用GUId的就是用户信息表。也就是系统里最抽象的对象。
    其他的一般不用。使用GUID对操作也不是很方便。但是辨别是很清晰。
    如果是新闻系统用自增就行了

    7楼:如果没有并行的数据表,或者要进行复制合并,就没必要使用GUID,用自增列挺好.

    8楼:

    分布式处理系统里最好用GUID。大的系统一般用这个
    单机的系统或者小软件,一般用子增列或者自定义的编号做主键就可以了

    10楼:

    需要数据库同步的自增id可能有问题,可能会出现id重新生成。
    但是一般的情况下还是自增id方便点。

    13楼:

    在SQL Server中使用32全球唯一码(GUID)可用newid来获取。

    insert into [User](id,name,sex,password)values(newid(),'xp','1','1234')

    其中id数据列要求是36位char型或Uniqueidentifier 型

    以下内容来自SQL Server联机帮助
    可以包含对 GUID 数据类型的引用,该数据类型用于存储全局唯一标识符。在更新查询和插入源查询中可以调用 newid( ) 函数,以生成新的 GUID 存储在数据库内。

    创建选择查询时,允许对 GUID 类型列执行的唯一操作是基于等于(= 和 <>)的比较。

    获取数据表主键sql:使用GUID作为数据表主键的好处 
     使用GUID作为数据表主键的好处数据表主健通常采用以下三种方式: 1. 自动递增值。2. 唯一名称。这
    个是使用自己定义的算法来生成一个唯一序列号。 3. GUID(全局唯一标识符)。GUID与自动递增值及唯一名
    称比较GUID在客户端生成,由GUID的特性决定,通过GUID生成的值可能出现重复的机会几乎等于零,因此保
    证在插入表的时候主键值唯一。可以方便处理分布式数据的提交,比如:分店数据向总店提交――直接将该部分
    数据插入即可。支持离线数据处理。对本地数据包进行新增记录时即可将该数据表的关键字段值赋值,其处理
    方法是与在线新增时是一致的。自动递增值 在数据库服务器端生成,由于该值是由数据库系统内部处理的,亦
    保证其唯一性,但由于其是在数据库服务器端生成,因此必须将该值返回客户端,客户端通过该值过行其它操
    作。比如一张单据(主从表)是使用自动递增值,当插入单据抬头后,必须将单据抬头的关键字段值返回,再
    插入单据明细(单据明细是通过单据抬头关键字段进行关联的)。不能很好处理分布式数据的提交,比如:分
    店数据向总店提交――提交数据时必须重新生成该数据表的关键字段值,以保证该字段值唯一。

    16楼:

    主键用int性能好。GUID是16字节,数据量大时,本身占的空间就多了。
    一般我们主键都是选择聚集索引的,GUID生成是随机的,会使插入数据时,记录会放在中间。
    而int的自增长列,可以确保新记录都加在表尾。
    如果涉及到多数据库数据同步,就在表加一列guid,做唯一标识。

    PS:虽然这个帖子已经有2岁了,不过到现在我还是搞不清用哪一个比较好,或者说在什么时候用哪一个比较好。因为用习惯了自增列,没有特殊情况,不愿用GUID。

  • 相关阅读:
    HDU 1114 Piggy-Bank
    HDU 2955 Robberies
    NTOJ 290 动物统计(加强版)
    POJ 3624 Charm Bracelet
    HDU 2602 Bone Collector
    POJ 1523 SPF(无向图割顶)
    HDU 5311 Hidden String
    HDU 1421 搬寝室
    HDU 1058 Humble Numbers
    POJ 3259 Wormholes(spfa判负环)
  • 原文地址:https://www.cnblogs.com/dingdingmao/p/3146622.html
Copyright © 2011-2022 走看看