`
xupo
  • 浏览: 214897 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MySQL数据库表的主键到底是用GUID好,还是INT好?

阅读更多

待补充

 

 两遍对比的文章:

http://krow.livejournal.com/497839.html

 

 http://www.mysqlperformanceblog.com/2007/03/13/to-uuid-or-not-to-uuid/

 

CREATE TABLE Test_Guid
(
Guid varchar(50) not null,
TestId int not null,
TestText ntext not null,
TestDateTime datetime default getdate(),
CONSTRAINT PK_Guid PRIMARY KEY (Guid)
)

应该改成这样吧:

CREATE TABLE Test_Guid
(
Guid uniqueidentifier not null,
TestId int not null,
TestText ntext not null,
TestDateTime datetime default getdate(),
CONSTRAINT PK_Guid PRIMARY KEY (Guid)
)

 

另外,在使用Guid类型作为主键时,一定要记得取消主键的“聚集索引” 否则,在插入数据的时候会有严重的性能损耗。因为Guid的值不具有可预测性。

分享到:
评论
2 楼 xupo 2011-03-04  
1 楼 xupo 2011-03-04  

相关推荐

    数据库主键设计原则 设计数据库主健

    1. **实现方式**:使用数据库自身的自增功能(如MySQL的AUTO_INCREMENT)。 2. **优点**: - 实现简单,无需额外编写代码。 - 性能较高,因为不需要复杂的计算或查询操作。 3. **缺点**: - 在分布式环境中难以...

    试析MySQL数据库性能的调优.pdf

    例如,主键推荐使用int而不是guid,因为更小的字段类型能够提高查询效率,减少内存、磁盘I/O和网络带宽的消耗。在数值类型中,MySQL提供了TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT等不同范围的整数类型,应根据...

    sqlserver数据库主键的生成方式小结(sqlserver,mysql)

    在SQL Server和MySQL这两种常见的数据库管理系统中,主键的生成方式主要有三种:数据库自动生成、GUID(全局唯一标识符)以及开发创建。下面将详细讨论这三种方式。 **一、数据库自动生成** 在SQL Server中,这种...

    MyBatis主键自动生成方法.pdf

    在MyBatis中,主键自动生成是一种常见且实用的功能,尤其在与支持自动增加主键的数据库(如MySQL)配合使用时。当我们在插入数据时,有时希望数据库能够自动为新记录生成唯一的主键值,而不是手动指定。MyBatis提供...

    hibernate主键生成策略

    - **描述**:`guid`策略类似于`uuid`,但在某些数据库如`MSSQL Server`和`MySQL`中使用数据库生成的GUID值。 - **应用场景**:适用于需要在特定数据库中使用原生GUID值的情况。 #### 8. `native` - **描述**:`...

    数据库和C#数据类型讲解

    数据库是存储和管理数据的核心工具,它允许程序员和用户高效地检索、操作和管理大量信息。在编程领域,特别是与数据库交互时,了解C#语言中的数据类型和SQL中的数据类型至关重要。本教程将深入探讨这两个关键领域的...

    beego-self-increment代码.zip

    1. 数据库自增:在大多数关系型数据库(如MySQL、PostgreSQL等)中,可以设置某个字段为自增主键,每次插入新记录时,数据库会自动递增该字段的值。这是最常见且简单的方法,但依赖于数据库。 2. 应用程序内自增:...

    Hibernate Tutorial 03 (Object Identifier).pdf

    例如,在MySQL中,可以通过在表的主键列上使用`AUTO_INCREMENT`属性来实现。 ```xml ``` 2. **Native**: 此策略允许Hibernate选择最佳的标识符生成策略,这通常取决于底层数据库的特性。 ```xml ...

    MySQL压测工具mysqlslap的介绍与使用

    MySQL压测工具mysqlslap是MySQL 5.1版本以后集成的一个基准测试工具,它用于模拟多客户端并发地向数据库服务器发送查询和更新操作,帮助评估数据库的性能和稳定性。这个工具不仅简单易用,还能生成schema,加载数据...

    SQL数据类型详解(常见的数据库)

    本篇文章将详细解释常见数据库如Microsoft Access、MySQL以及SQL Server所使用的数据类型及其特点,帮助读者更好地理解和应用这些数据类型。 #### 二、Microsoft Access 数据类型详解 ##### 1. Text (文本) - **...

    NET 开发规范(参考阿里开发规范)

    - 主键设计应合理,一般采用自增ID或GUID等方式。 - 字段类型的选择需考虑存储效率和查询性能。 ##### (二) 索引规约 - 合理使用索引可以显著提升查询性能。 - 针对频繁用于查询条件的字段创建索引。 - 避免创建...

Global site tag (gtag.js) - Google Analytics