首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用uniqueidentifier(GUID)或bigint作为标识列是否更好?

在云计算领域,使用uniqueidentifier(GUID)或bigint作为标识列是一个有争议的话题。GUID是一种全球唯一的标识符,可以在不同的系统和应用中用于标识一个对象。而bigint是一种数据类型,可以存储从-9223372036854775808到9223372036854775807之间的整数值。

在数据库中,使用GUID作为标识符可以避免一些常见的问题,例如主键冲突和重复的ID。但是,使用GUID作为标识符也有一些缺点。例如,GUID的长度非常长,可能会导致存储空间的浪费。此外,GUID对于普通人来说很难理解,可能会导致沟通不畅。

相比之下,使用bigint作为标识符可以避免上述问题。由于bigint是整数类型,因此它占用的存储空间相对较小。此外,bigint对于普通人来说也很容易理解。

总的来说,使用uniqueidentifier(GUID)或bigint作为标识列取决于您的具体需求和场景。如果您需要全球唯一的标识符,那么GUID可能更适合您。如果您需要一种易于理解和使用的标识符,那么bigint可能更适合您。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Transact-SQL基础

存储十六进制值 [如安全标识号 (SID)、GUID使用 uniqueidentifier 数据类型)或可以用十六进制方式存储的复杂数字时,使用二进制数据。...除非明确说明,否则那些接受 int 表达式作为其参数的函数、语句和系统存储过程都不会改变,从而不会支持将 bigint 表达式隐式转换为这些参数,只有当参数表达式为 bigint 数据类型时,函数才返回...2.3.10 uniqueidentifier uniqueidentifier 数据类型可存储 16 字节的二进制值,其作用与全局唯一标识符 (GUID) 一样。...uniqueidentifier GUID 值通常通过下列方式之一获取: 在 Transact-SQL 语句、批处理脚本中调用 NEWID 函数。...这一属性使 rowversion 不适合作为使用,尤其是不能作为主键使用。对行的任何更新都会更改行版本值,从而更改键值。如果该属于主键,那么旧的键值将无效,进而引用该旧值的外键也将不再有效。

3.4K20
  • SQL Server中的GUID

    GUID 主要用于在拥有多个节点、多台计算机的网络系统中,分配必须具有唯一性的标识符。...1、在 SQL Server 中使用 GUID 如果在 SQL Server 的表定义中将类型指定为 uniqueidentifier,则的值就为 GUID 类型。...SQL Server 中的 NewID() 函数可以产生 GUID 唯一值,使用此函数的几种方式如下: 1) 作为默认值 将 uniqueidentifier的默认值设为 NewID(),这样当新行插入表中时...便于数据库移植,其它数据库中并不一定具有 IDENTITY ,而 Guid 可以作为字符型转换到其它数据库中,同时将应用程序中产生的 GUID 值存入数据库,它不会对原有数据带来影响。...便于对某些对象常量进行永久标识,如类的 ClassID,对象的实例标识,UDDI 中的联系人、服务接口、tModel标识定义等。

    5K20

    sql数据库unique的用法_mysql中的date数据类型

    摘自帮助: uniqueidentifier 全局唯一标识符 (GUID)。 注释 uniqueidentifier 数据类型的局部变量可用两种方法初始化为一个值: 使用 NEWID 函数。...使用 uniqueidentifier 数据 uniqueidentifier 数据类型存储 16 字节的二进制值,该值的使用与全局唯一标识符 (GUID) 一样。...GUID 是一个唯一的二进制数字;世界上的任何两台计算机都不会生成重复的 GUID 值。GUID 主要用于在拥有多个节点、多台计算机的网络中,分配必须具有唯一性的标识符。...uniqueidentifier GUID 值通常由以下方式获得: 在 Transact-SQL 语句、批处理脚本中调用 NEWID 函数。...在应用程序代码中,调用返回 GUID 值的应用程序 API 函数方法。

    1.7K20

    uniqueidentifier什么意思_数据类型int是什么意思

    GUID主要用于在用于多个节点,多台计算机的网络中,分配必须具有唯一性的标识符。 在SQL中 ROWGUIDCOL表示新是行的全局唯一标识。...对于每个表只能指派一个uniqueidentifier作为ROWGUIDCO。...Uniqqueidentifier 是全局唯一的标识   二 UniqueIdentifier 数据类型的如何赋值?   ...五 使用 Uniqueidentifier数据类型的主要的优点   Uniqueidentifier 数据类型主要的优点是在使用newid函数生成值的时候是可以保证值的全球唯一性   可以唯一的标识单行的记录...七 在系统数据库的设计中我们如何对Uniqueidentifier,Identity ,和可标识的记录属性(有实际的含义的信息)作为主键 ,这三种方式 进行取舍   以属性为主键的系统设计情况

    1.4K30

    数据类型(四)

    IRIS 分配顺序整数作为每个插入、更新 %Save 操作的一部分。这些值不是用户可修改的。IRIS 在命名空间范围内维护一个单行版本计数器。...插入可以提供 SERIAL 字段值作为负整数小数。 IRIS 将小数截断为其整数部分。如果提供的 SERIAL 字段值为 0 NULL, IRIS 将忽略用户提供的值并插入当前的内部计数器值。...ODBC 公开以下数据类型:BIGINT、BIT、DATE、DOUBLE、GUID、INTEGER、LONGVARBINARY、LONGVARCHAR、NUMERIC、OREF、POSIXTIME、SMALLINT...GUID 数据类型对应于 SQL UNIQUEIDENTIFIER 数据类型。未能为 GUID / UNIQUEIDENTIFIER 字段指定有效值会生成 #7212 一般错误。...要生成 GUID 值,请使用 %SYSTEM.Util.CreateGUID() 方法。查询元数据返回数据类型可以使用动态 SQL 返回有关查询的元数据,包括查询中指定的数据类型。

    1.2K20

    数据库模型设计——主键的设计

    GUID类型:这个类型并不是所有数据库都有对应的数据类型,SQL Server有uniqueidentifier,MySQL没有。...通过上面的比较,我们知道使用数字类型是更好的方式,那么我们为什么还会有人使用GUID和字符串来当主键呢?那是因为: 相对于数字类型,字符类型更易读易记,在检索关联的数据时,更方便直接。...一种方案是再新建一个独立的字段作为主键,该字段并没有业务含义,只是一个自增列或者流水号,用于唯一标识每一行数据,这是数据库主键。另外一种方案是选择其中较短较常用的属性作为主键,这是业务主键。...答案是否定的,我们仍然可能会使用到联合主键。联合主键主要使用在多对多的关系时,中间表就需要使用联合主键。...以SQL Server为例,默认情况下,建立主键的,就会建立聚集索引,但是实际上,我们可以在建立主键时不使用聚集索引。

    1.1K30

    微服务实战(六):落地微服务架构到直销系统(事件存储)

    要实现一个事件存储的框架,我们通常需要实现以下几个方面: 1.对象事件的存储表 我们通常将对象某个变化的事件数据存储到数据库的表中,通常采用关系型数据库进行存储,这里使用SQL Server。...[DomainCommandAndEventObject]( [Id] [uniqueidentifier] NULL, [AggregationRootId] [uniqueidentifier]...2.重构Event用以支持存储 前面文章实现的事件只是用于标识消息,在事件需要存储时,我们需要更多的属性,包括聚合根ID,聚合根类型,操作聚合根的事件类型,版本号等。...this.CreateDate = DateTime.Now; } } 3.实现存储的事件对象 其实这里要实现的就是将事件和事件对象之间做相互的转换,用于未来存储事件将事件反序列化成事件对象进行使用...为了能够快速存储,我们并不采用ORM框架,而是直接使用ADO.NET完成事件对象的存储。

    59520

    mysql uniqueidentifier,sql-如何检查字符串是否uniqueidentifier

    sql-如何检查字符串是否uniqueidentifier是否有与IsDateIsNumeric等效的uniqueidentifier(SQL Server)?...SQL Server接受包含在WHERE中不包含在其中的GUID。 此外,它会忽略字符串末尾的多余字符。 例如,WHERE和À都成功。...在大多数默认归类下,WHERE将最终匹配字符,例如ÀË 最后,如果将结果中的行强制转换为uniqueidentifier,将强制转换尝试放在case表达式中非常重要,因为强制转换可能发生在WHERE行过滤之前...如果可以:尝试将其编写在C#库中并将其作为SQL-CLR程序集部署到SQL Server中-那么您可以使用Guid.TryParse()这样的东西,它肯定比T-SQL中的任何东西都容易使用。...我需要删除的用户的“我的名字”字段是GUIDuniqueidentifier。 我就是这样结束的。 我能够将您的一些答案汇总到此。 SELECT UserId FROM [Membership].

    2.2K10

    SQL Server 数据类型

    使用这种字符类型存储的可以存储多个字符集中的字符。当的长度变化时,应该使用Nvarchar 字符类型,这时最多可以存储 4000 个字符。...当的长度固定不变时,应该使用 Nchar 字符类型,同样,这时最多可以存储4000 个字符。当使用 Ntext 数据类型时,该可以存储多于 4000 个字符。...当表示真或者假、ON 或者 OFF 时,使用 Bit 数据类型。例如,询问是否是每一次访问的客户机请求可以存储在这种数据类型的中。   ...Uniqueidentifier 由 16 字节的十六进制数字组成,表示一个全局唯一的。当表的记录行要求唯一时,GUID是非常有用。例如,在客户标识使用这种数据类型可以区别不同的客户。 2....全球唯一标识GUID char 定长非Unicode的字符型数据,最大长度为8000 varchar 变长非Unicode的字符型数据,最大长度为8000 text 变长非Unicode的字符型数据

    2.1K10

    SQL Server数据库高级进阶之分布式唯一ID生成实战演练

    (主要是索引查询销量不是最高的) 如果非要使用非自主增长列作为主键的话(分布式系统分库分表中),推使用有序UUID和有序的整长的Rowid(雪花算法snowflake和MongoDB之ObjectId...ID生成实战演练 唯一ID可以标识数据的唯一性,在分布式系统中生成唯一ID的方案有很多,常见的方式大概有以下三种: 2.1、依赖数据库,使用SQL SERVER无序UUID和有序UUID。...: SQLServer 2005已经解决了这个问题,使用的是NEWSEQUENTIALID() create table jobs ( id UNIQUEIDENTIFIER ROWGUIDCOL...snowflake是twitter开源的分布式ID生成算法,其核心思想是:一个long型的ID,使用其中41bit作为毫秒数,10bit作为机器编号,12bit作为毫秒内序列号。...接下来三位是所在主机的唯一标识符,通常是机器主机名的散值。 接下来两位是产生 ObjectId 的 PID,确保同一台机器上并发产生的 ObjectId 是唯一的。

    2.1K20

    SQL Server数据库高级进阶之分布式唯一ID生成实战演练

    (主要是索引查询销量不是最高的) 如果非要使用非自主增长列作为主键的话(分布式系统分库分表中),推使用有序UUID和有序的整长的Rowid(雪花算法snowflake和MongoDB之ObjectId...ID生成实战演练 唯一ID可以标识数据的唯一性,在分布式系统中生成唯一ID的方案有很多,常见的方式大概有以下三种: 2.1、依赖数据库,使用SQL SERVER无序UUID和有序UUID。...: SQLServer 2005已经解决了这个问题,使用的是NEWSEQUENTIALID() create table jobs ( id UNIQUEIDENTIFIER ROWGUIDCOL...snowflake是twitter开源的分布式ID生成算法,其核心思想是:一个long型的ID,使用其中41bit作为毫秒数,10bit作为机器编号,12bit作为毫秒内序列号。...接下来三位是所在主机的唯一标识符,通常是机器主机名的散值。 接下来两位是产生 ObjectId 的 PID,确保同一台机器上并发产生的 ObjectId 是唯一的。

    1.1K30

    SQL数据库数据类型_数据表的常见数据类型有哪些

    整数型 整数包括bigint、int、smallint和tinyint 4类。 ● bigint(大整数) 精度为19位,长度为8字节,数值范围为-263~263-1。...当一个表中有小于8位的bit,将作为一个字节存储,如果表中有9到16位bit,将作为两个字节存储,依此类推。 当为bit类型数据赋0时,其值为0;而赋非0时,其值为1。...nchar[(n)]、nvarchar[(n)]和char[(n)]、varchar(n)类似,只是前者使用Unicode字符集,后者使用ASCII字符集。...若创建表时定义一个的数据类型为时间戳类型,那么每当对该表加入新行修改已有行时,都由系统自动将一个计数器值加到该,即将原来的时间戳值加上一个增量。 12....● uniqueidentifier 唯一标识符类型,系统将为这种类型的数据产生唯一标识值。 ● xml 用来在数据库中保存xml文档和片段的一种类型,文件大小不能超过2GB。

    1.8K10
    领券