使用Guid做主键和int做主键性能比较 在数据库的设计中我们常常用Guid或int来做主键,根据所学的知识一直感觉int做主键效率要高,但没有做仔细的测试无法 说明道理.碰巧今天在数据库的优化过程中,遇到此问题,于是做了一下测试. 测试环境: 台式电脑 Pentiun(R) 4 Cpu 3.06GHz Win XP professional  1.5G DDR RAM  SQL Server 2005 个人版 测试过程:首先创建测试数据库Test1.创建Test_Guid表,创建Test_In…
数据库:mysql5.5 表类型:InnoDB 数据量:100W条 第一种情况: 主键采用uuid 32位. 运行查询语句1:SELECT COUNT(id) FROM test_varchar; 运行查询语句2:SELECT * FROM test_varchar WHERE vname='00004629-b052-11e1-96aa-002655b28d7b'; 运行查询语句3:SELECT * FROM test_varchar WHERE id='00004599b05211e196a…
我们公司的数据库全部是使用GUID做主键的,很多人习惯使用int做主键.所以呢,这里总结一下,将两种数据类型做主键进行一个比较. 使用INT做主键的优点: 1.需要很小的数据存储空间,仅仅需要4 byte . 2.insert和update操作时使用INT的性能比GUID好,所以使用int将会提高应用程序的性能. 3.index和Join 操作,int的性能最好. 4.容易记忆. 5.支持通过函数获取最新的值,如:Scope_Indentity() . 使用INT做主键的缺点 1.如果经常有合并…
当我们默认新建一个ASP.NET MVC项目的时候,使用的身份认证系统是ASP.NET Identity.但是这里的Identity使用的主键为String类型的GUID.当然这是大多数系统首先类型.但是因为历史原因,而我们公司所有项目主键都是用的Int类型(这里不讨论int和GUID的优劣)所以默认的String类型GUID就不能满足我们的需求,所以进行一些扩展,让其支持Int类型.下图为默认使用String做主键的ASP.NET MVC ApplicationUser继承自IdentityU…
什么是主键.外键关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键. 比如: 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 课程表(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是一个主键 成绩表(学号,课程号,成绩) 成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以学号和课程号的属性组是一个主键 成绩表中的学号不是成绩表的主键,但它和学生表中的…
在数据库的学习中,对于一个表的主键和外键的认识是非常重要的. 主键:在一个表中,能唯一的表示一个事物(或者一条记录)的字段,我们称之为主键 注意: 主键的设置可以不只是用一个字段,也可以用若干个字段的组合,但主键必须是唯一的: 主键一般情况下都用整数,在这里不建议用字符转当做主键. 主键通常不允许修改,除非该表中的该条记录被删除,我们可以删除主键. 对于主键的命名问题,不建议直接用ID来命名主键,建议用表名Id  或者  表名_Id来命名主键名   不允许使用业务(表中有功能)字段来当做主键,我…
键盘代码部份转自:http://www.cnblogs.com/cpcpc/archive/2011/02/22/2123055.html 由于喜欢用CTRL+空格键切换输入法,在WIN8上有所不习惯,所以写了个小程序,当按CTRL+空格键时向系统发送WIN+空格键. 首先使用全局快捷键,监视CTRL+空格的输入,然后再发送WIN+空格键. [DllImport("user32.dll", SetLastError = true)] public static extern bool…
转载自:http://blog.csdn.net/sunrise918/article/details/5575054 这几天对逻辑主键.业务主键和复合主键进行了一些思考,也在网上搜索了一下相关的讨论,相关讨论可以看最下面的参考链接.下面是自己基于 SQL Server 做的一些总结,其他数据库(Oracle.MySQL.DB2.......)应该也类似吧.这个只是自己一时的思考,如有不当请告知,重新思考后再修 正. 定义(部分定义来源于 SQL Server 联机丛书): 主键(PRIMARY…
1.主键约束和外键约束 外键约束 * 外键必须是另一表的主键的值(外键要引用主键!) * 外键可以重复 * 外键可以为空 * 一张表中可以有多个外键! 概念模型在数据库中成为表 数据库表中的多对一关系,只需要在多方使用一个独立的列来引用1方的主键即可 /*员工表*/ create talbe emp ( empno int primary key,/*员工编号*/ ... deptno int/*所属部门的编号*/ ); /*部门表*/ create table dept ( deptno in…
本章对Redis服务器的数据库实现进行介绍,说明Redis数据库相关操作的实现,包括数据库中键值对的添加.删除.查看.更新等操作的实现:客户端切换数据库的实现:键超时相关功能的实现.键空间事件通知等. 以上这些功能,键空间事件通知是在src/notify.c中实现的,其他功能都是在src/db.c中实现的. 在redis.h中定义的redisServer数据结构,定义了redis服务器相关的所有属性,其中就包含了数据库的结构: struct redisServer { ... redisDb *…