当前位置: 首页 > 面试题库 >

主键类型:int vs long

梁承恩
2023-03-14
问题内容

我知道一些软件商店已经通过将int类型用作持久类的主键来刻录。话虽如此,并不是所有的赌桌都超过了20亿。事实上,大多数都不是。

那么,你们是否只将long类型用于映射到潜在大型表的类,还是仅用于保持一致的每个持久类?什么是行业共识?

我会将这个问题保留一段时间,以便您可以与我们分享您的成功/恐怖故事。


问题答案:

即使表没有增长得很大,但周转率很高,即如果频繁删除/插入行,则Long可能是有利的。当表格保持较小状态时,您自动生成的/顺序的唯一标识符可能会增加到一个较高的数字。

我通常使用Long,因为在我的大多数项目中性能优势并不明显,但是由于溢出引起的错误将非常明显!

这并不是说Int对于其他人的场景(例如数据处理或复杂的查询系统)不是更好的选择。只是要清楚风险/收益以及它们如何影响您的特定项目。



 类似资料:
  • 我有一个对象,其中包含另一个对象类型的属性,我想将其视为复杂类型。 在添加迁移时,我遇到了需要主键的问题(这正是我想要防止的)。 实体类型坐标需要定义主键。 编辑 出于性能原因,我希望属性存储为和,而不是对另一个表的引用。

  • 我正在开发SQL Server 2012: 我有一个主键列为的表。我需要将其更改为GUID。 我是否要更改表并将int列作为主键删除? 添加GUID列并将其设置为主列,然后删除旧的INT列? 非常感谢。

  • 问题内容: 我在80多个不同的表中都有一个ReferenceIDvarchar(6)列。我需要在分配ID的政府组织实施更改之后,将其扩展到整个db的varchar(8)。 我希望声明一个游标以获取表名,如下所示: 然后按如下所示编辑类型: 之所以失败,是因为该列是某些表中主键的一部分(并且PK中包含的列因表而异)。 我真的不想不必为每个表手动删除并重新创建每个PK。 在游标中,有一种方法可以在更改

  • 本文向大家介绍mysql修改自增长主键int类型为char类型示例,包括了mysql修改自增长主键int类型为char类型示例的使用技巧和注意事项,需要的朋友参考一下 原来有一个表中的主键是int自增长类型, 因为业务变化需要把int改成char类型的主键。同时因为原来的表中已经存在了数据,不能删除表重建,只能修改表结构。 首先去掉自增长属性: alter table table_name  ch

  • 乍一看,这似乎并不是非常有用(即使是错误提及原始类型),但随着类型注释变得更加复杂, 关键字的好处变得明显。 联合类型允许类型注释指定属性应该是一组类型之一(两者任一)。 function admitAge (age: number|string): string { return `I am ${age}, alright?!`; } admitAge('Forty'); // 'I am

  • 键被作为每个实体实例主要唯一标识。当使用的是关系数据库时,键被映射为主键这个概念。你还可以将唯一标识配置为非主键(详见 替代键(备用关键字))。 惯例 按照惯例,名为 Id 或者 <当前类型名称>Id 的属性都将被配置为实体的键。 class Car { public string Id { get; set; } public string Make { get; set; }