sql - 复合键与额外唯一列

标签 sql performance sqlite composite-key unique-constraint

在两列上使用UNIQUE约束与仅包含一个包含两个列值/ GUID的串联的列以及在该列上使用索引之间,是否存在重大的开销差异?例如,代替使用|John|Smith|(两个不同的列)作为唯一约束,添加包含JohnSmith或随机GUID的额外列是否会更有效?

最佳答案

将两列用作键似乎很愚蠢-声明复合键时,数据库完全有能力为您做到这一点。向表中添加其他INT或GUID键是否有意义取决于两个列是否确实是该表的主键。如果是这样,为什么还要带走额外一列的额外开销(您仍然需要前两列都具有索引以确保它们保持唯一性)。但是,如果它们不是真正的主键(在您的示例中,几乎在任何现实世界的系统中都不能将名字和姓氏视为主键),那么您将需要单独的主键。

关于sql - 复合键与额外唯一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12765480/

相关文章:

sql - 在每个新的连续簇上重置为 0 的运行总和

mysql - 单个 sql 查询来执行一些分组依据

performance - Google 桌面搜索如何做到既轻便又快速?

Java 实例化类以允许动态字段

python - 关于数据库设计基础的问题

ruby - 使用 Ruby 2.0 的 Windows 中的 sqlite3_native.rb 在哪里?

sql - iphone sqlite3 数据库与服务器上的 sql server 2005 数据库之间的完全同步

mysql - mysql explain 中更高的行计数意味着好还是坏?

sql - 窗口函数 - 带重置的运行总计

mysql - MySql 中时间戳的性能问题