GUID和INT两种数据类型做主键的比较
我们公司的数据库全部是使用GUID做主键的,很多人习惯使用int做主键。所以呢,这里总结一下,将两种数据类型做主键进行一个比较。
使用INT做主键的优点:
1、需要很小的数据存储空间,仅仅需要4 byte 。
2、insert和update操作时使用INT的性能比GUID好,所以使用int将会提高应用程序的性能。
3、index和Join 操作,int的性能最好。
4、容易记忆。
5、支持通过函数获取最新的值,如:Scope_Indentity() 。
使用INT做主键的缺点
1、如果经常有合并表的操作,就可能会出现主键重复的情况。
2、使用INT数据范围有限制。如果存在大量的数据,可能会超出INT的取值范围。
3、很难处理分布式存储的数据表。
使用GUID做主键的优点:
1、它是独一无二的。
2、出现重复的机会少。
3、适合大量数据中的插入和更新操作。
4、跨服务器数据合并非常方便。
使用GUID做主键的缺点:
1、存储空间大(16 byte),因此它将会占用更多的磁盘大小。
2、很难记忆。join操作性能比int要低。
3、没有内置的函数获取最新产生的guid主键。
4、GUID做主键将会添加到表上的所以其他索引中,因此会降低性能。
总结:
上面列出了GUID和INT两种数据类型做主键优缺点。我觉得,对于大数据量,建议使用guid做主键。而使用int会得到最佳的性能。
本文转自麒麟博客园博客,原文链接:http://www.cnblogs.com/zhuqil/archive/2010/12/02/1894575.html,如需转载请自行联系原作者
GUID和INT两种数据类型做主键的比较相关推荐
- pandas的两种数据类型:Series和DataFrame
首先要明确pandas是做什么的,在确定是如何做的,通过哪些方式去做的? pandas是做什么的? Python Data Analysis Library 或 pandas 是基于NumPy 的一种 ...
- 分析Java的两种数据类型
一.Java的两种数据类型 1.基本数据类型:四类八种 整数型:byte short int long 浮点数型:float double 布尔型:boolean 字符型:char 2.引用数据类型: ...
- 实验long raw 和 blob两种数据类型遇到dblink的表现
首先long raw从Oracle 10g开始就不再被建议使用,建议用blob代替.同理,long建议用clob代替. 本文从运维角度实验long raw 和 blob两种数据类型在遇到dblink时 ...
- mysql添加两种数据类型_MySQL入门(二) 数据库数据类型详解
序言 今天去健身了,感觉把身体练好还是不错的,闲话不多说,把这个数据库所遇到的数据类型今天统统在这里讲清楚了,以后在看到什么数据类型,咱度应该认识,对我来说,最不熟悉的应该就是时间类型这块了.但是通过 ...
- python创建字典的两种方法要求键星期一到星期天_Python3笔记019 - 4.4 字典
第4章 序列的应用 4.1 序列 4.2 列表 4.3 元组 4.4 字典 4.5 集合 4.6 列表.元组.字典.集合的区别 python的数据类型分为:空类型.布尔类型.数字类型.字节类型.字符串 ...
- 验证整数 Double 转 int 两种写法
Double 转int 1)之前一直是使用强转 Double num = Double.parseDouble(object.toString()); int n = (int)num; ...
- Python_pandas 两种主要的数据类型(Series、DataFrame)
因为是数学专业,最开始深入学习的是MATLAB(下面简称M),感受最深的就是M的简单高效,高精度,不管什么东西,统统放到数组(或者说矩阵)里面,天哪噜,不可思议,和C语言.C++相比,这玩意就是个天生 ...
- JS教程之 识别 JavaScript 数据类型:两种方法就足够了
Primitive type原始类型: Null.Undefined.Number.String.Boolean.Symbol.BigInt vObject type 对象类型: Object 你知道 ...
- 简单介绍Python中的几种数据类型
大体上把Python中的数据类型分为如下几类: Number(数字) 包括int,long,float,complex String(字符串) 例如:hello,"hello",h ...
最新文章
- 3D视觉技术的6个问答
- python写完程序保存_Python学习笔记——文件处理
- python 的日志logging模块学习
- Multiple markers at this line
- 拉5000万存款,银行客户经理能拿40万奖金?
- 从DevOps到Cloud Native,应用上云姿势全解锁
- head first java原文_Head First Java
- 均衡原理_干货什么是负载均衡?负载均衡原理详解
- MySQL的INSERT INTO··· ON DUPLICATE KEY UPDATE使用的几种情况
- Coursera NLP 笔记02
- OJ1075: 聚餐人数统计(C语言)
- ios 旋转屏幕试图切换_TCL·XESS 旋转智屏 A200Pro 评测:方向一换,体验大不相同...
- 如何使用Linux重置Windows密码
- Nsight2.0安装及单机调试(CUDA4.0)设置经验
- linux紧急救援模式,如何在 Ubuntu 18.04 中启动到救援模式或紧急模式
- 质量值体系 Phred33 和 Phred 64 的由来 及其在质量控制中的实际影响
- 支付宝客户端架构解析:iOS 客户端启动性能优化初探
- 滴滴上市,我的一位前同事身家过亿了!
- Android5.0 下拉通知栏快捷开关的添加(必看)
- 新致新知 | ChatGPT+企业知识图谱
热门文章
- 自考--网络经济与企业管理--选择易考题
- Tips--解决安装Multisim时出现No software will be installed or removed无法安装的问题
- VMware提供的几种工作模式?
- java线程锁标记_java 线程 中断标志位
- mysql集群如何保障数据分布均匀_如何保证数据库集群时候,主从库一致性的问题?...
- 神奇的判断数组名和指针的区别
- H3C 环路避免机制六:触发更新
- 领扣简单版--两数之和(Two Sum)
- 多线程---ReentrantLock
- [深入学习Redis]RedisAPI的原子性分析