在一个分布式环境中,我们习惯使用GUID做主键,来保证全局唯一,然后,GUID做主键真的合适吗? 其实GUID做主键本身没有问题,微软的很多项目自带DB都是使用GUID做主键的,显然,这样做是没有问题的。然而,SQL Server默认会将主键设置为聚集索引,使用GUID做聚集索引就有问题 ...
我们公司的数据库全部是使用GUID做主键的,很多人习惯使用int做主键。所以呢,这里总结一下,将两种数据类型做主键进行一个比较。 使用INT做主键的优点: 需要很小的数据存储空间,仅仅需要 byte 。 insert和update操作时使用INT的性能比GUID好,所以使用int将会提高应用程序的性能。 index和Join 操作,int的性能最好。 容易记忆。 支持通过函数获取最新的值,如:Sc ...
2014-11-17 12:47 3 14590 推荐指数:
在一个分布式环境中,我们习惯使用GUID做主键,来保证全局唯一,然后,GUID做主键真的合适吗? 其实GUID做主键本身没有问题,微软的很多项目自带DB都是使用GUID做主键的,显然,这样做是没有问题的。然而,SQL Server默认会将主键设置为聚集索引,使用GUID做聚集索引就有问题 ...
使用Guid做主键和int做主键性能比较 在数据库的设计中我们常常用Guid或int来做主键,根据所学的知识一直感觉int做主键效率要高,但没有做仔细的测试无法 说明道理。碰巧今天在数据库的优化过程中,遇到此问题,于是做了一下测试。 测试环境: 台式电脑 Pentiun(R ...
场景: 产品表数据量较大想用Guid做表的主键,并在此字段上建立聚簇索引。 因为Guid是随机生成的,生成的值大小是不确定的,每次生成的数可能很大,也可能很小。这样会影响插入的效率 1.NEWSEQUENTIALID和newid()的区别 NEWSEQUENTIALID() 和 NEWID ...
结点的索引(稀疏索引),叶子结点相当于是存储(关键字)数据的数据层; 2、如果我们定义了主键( ...
结点的索引(稀疏索引),叶子结点相当于是存储(关键字)数据的数据层; 2、如果我们定义了主键( ...
通常,给数据库中的表都添加一个“无意义”的主键,能够大大地简化程序的开发。这个主键用什么类型呢?其实各种类型,只要大小不超过900字节都可以,但我们最常面临 ...
自增主键 自增ID是在设计表时将id字段的值设置为自增的形式,这样当插入一行数据时无需指定id会自动根据前一字段的ID值+1进行填充。在MySQL数据库中,可通过sql语句AUTO_INCREMENT来对特定的字段启用自增赋值 使用自增ID作为主键,能够保证字段的原子性 ...
主键应该怎样设计?目前主要用到的主键方案共三种 自动增长主键 手动增长主键 UNIQUEIDENTIFIER主键 1、先说自动增长主键,它的优点是简单,类型支持bigint.但是它有致命的弱点: 当我们需要在多个数据库间进行数据的复制时(SQL Server的数据分发、订阅机制允许 ...