使用Guid做主键和Int 做主键有哪些好处

如题所述

int做主键,那么是子增长的,在数据库就按照有序的顺序来存储。但在如果不做特殊处理,在URL上直接显示会被人猜处理,导致数据被非法查看。

Guid是散列话的,这样数据不是有序的而是随机写,效率会比int的差点。但是没有int的数据的问题,最少不明显
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-18
保证其唯一性主键值会一直不变,因为它不属于主体的任何可变部分整数可以采用自动增加,很多数据库表格都使用该类主键。例如学生档案中的学号一般都是自动累加到数字,后注册的学生的学号一定大于先注册学生的学号。
第2个回答  2013-09-18
guid做主键永远不会重复 而int作主键不好管理

使用Guid做主键和Int 做主键有哪些好处
int做主键,那么是子增长的,在数据库就按照有序的顺序来存储。但在如果不做特殊处理,在URL上直接显示会被人猜处理,导致数据被非法查看。Guid是散列话的,这样数据不是有序的而是随机写,效率会比int的差点。但是没有int的数据的问题,最少不明显 ...

实际大网站中mysql的主键用int还是guid?
1、需要很小的数据存储空间,仅仅需要4 byte 。2、insert和update操作时使用INT的性能比GUID好,所以使用int将会提高应用程序的性能。3、index和Join 操作,int的性能最好。4、容易记忆。5、支持通过函数获取最新的值,如:Scope_Indentity() 。使用INT做主键的缺点 1、如果经常有合并表的操作,就可能...

使用Guid做主键和Int 做主键有哪些好处
大多是形象工程嘛,可以告诉客户,我们的程序储存多少多少万万亿亿条信息都没问题。不过也确实有不够用的情况,比如中国移动的手机充值卡密码,设长了就可以防止恶意用户用穷举法试探充值

MySQL数据库表的主键到底是用GUID好,还是INT好
INT好,如果你的数据超过很大的数可以使用BIGINT 主键最好是没有意义,并且连续增长、占用资源少的

使用GUID和自增数字ID作为主键,各有什么好处和坏处
GUID可以做分布式系统。还有就是,Oracle中不原生支持自增。1——GUID过长,看表现形式,至少都有32位,长的38位,浪费存储空间。2——GUID是根据硬件设备相关ID以及时间戳生成的 3——GUID不利于检索、外键关联 好处:1——一般来说不担心有冲突的影响,而且,根据GUID的生成规则,还能大致知道生成的...

我在考虑GUID的使用问题
以及在多个数据库之间切换 那么用 guid 不用考虑自动递增列产生的重复问题 例如你有一个 学校的系统 有系表, 班级表, 学生表 课程表,系 班级 一对多 班级 学生 一对多 学生 课程 一对多 如果 主键都是 自动递增, int 类型的, 那么 数据库导出后, 再导入时, 需要设置关键字 让...

SQL数据库中的主键与外键介绍
定义: 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键, 外键可以有重复的, 可以是空值该字段没有重复值,但可以有一个空值作用: 用来保证数据完整性 用来和其他表建立联系用的 是提高查询排序的速度个数: 主键只能有一个一个表可以有多个外键 一个表可以有多个惟一索引聚集索引和非聚集...

MySQL主键自动生成实现更高效数据管理mysql中主键自动生成
在这个例子中,id列被声明为自增长整数类型,它将自动生成每行的主键。此外,id列被声明为表的主键。当向表中插入新记录时,程序员不需要手动输入id值,id值会自动增加。2、使用GUID GUID是一种全局唯一标识符。对于有些系统来说,自增长整数并不适合作为主键。这时可以使用GUID作为主键。MySQL有一个...

使用SYS_GUID()做主键比Sequence在性能和空间上有哪些影响?
不足以说明问题。总体来看,尽管有CPU消耗增加的负面影响,使用SYS_GUID()做主键在实践中具有更多优点,特别是在集成多个数据库时,SYS_GUID的全局唯一性更为显著。在实际项目中,A项目未选择客户定义的“货单唯一序号”作为主键,遵循了关系数据库设计原则,即主键不应包含任何业务含义。

sys_guid()的性能比较
使用SYS_GUID做主键比用Sequence做主键,表多消耗了空间2097152 byte,索引多消耗2228224 byte,平均每行多消耗86.1 byte.考虑到生产环境下,每天5万条记录,则一年365*50000=18250000条记录,则理论上需要多耗费空间约合 1.43GB 存储空间.这些空间对磁盘消耗而言可以忽略不计,对内存仍然是有一定影响的,...

相似回答