为了账号安全,请及时绑定邮箱和手机立即绑定

字符串作为SQL数据库中的主键

/ 猿问

字符串作为SQL数据库中的主键

慕的地6264312 2019-09-20 17:29:53

我不熟悉数据库及其工作原理。从性能角度(插入/更新/查询)到主键使用字符串比整数更慢吗?



查看完整描述

3 回答

?
慕勒3428872

从技术上讲是的,但如果一个字符串有意义成为主键,那么你应该使用它。这一切都取决于您所使用的表的大小以及将成为主键的字符串的长度(较长的字符串==难以比较)。对于具有数百万行的表,我不一定会使用字符串,但是通过在较小的表上使用字符串而获得的性能减慢量对于通过使用不包含整数的整数而言可能会有一些麻烦不是指与数据有关的任何内容。


查看完整回答
反对 回复 2019-09-20
?
阿波罗的战车

使用字符串作为主键的另一个问题是,因为索引始终按顺序排列,当创建一个新键时,该键将处于顺序中间,索引必须重新排序...如果使用自动数字整数,新键只是添加到索引的末尾。


查看完整回答
反对 回复 2019-09-20
?
蝴蝶不菲

插入到具有聚簇索引的表中,其中插入发生在序列的中间,不会导致索引被重写。它不会导致包含数据的页面被重写。如果页面上有空间,那么它将被放置在该页面中。将重新格式化单个页面,以将行放在页面中的正确位置。当页面已满时,将发生页面拆分,页面上的一半行转到一页,另一半转到另一页。然后将页面重新链接到包含具有聚簇索引的表数据的页面的链接列表中。最多,您最终将编写2页数据库。


查看完整回答
反对 回复 2019-09-20

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信