我在思考,
如果我能确定添加的类型,那么使用MySQL中的约束作为外键的动机是什么?
它会提高性能吗?
我在思考,
如果我能确定添加的类型,那么使用MySQL中的约束作为外键的动机是什么?
它会提高性能吗?
外键强制引用完整性。这些约束条件保证了一个表order_details
中的一行,其中一个字段order_id
引用了一个orders
表,将永远不会有一个order_id
值不存在于orders
表中。
虽然在使用关系型数据库时不需要外键(事实上MySQL的默认存储引擎不支持FKs),但它们绝对是避免破碎的关系和孤立行(即引用完整性)所必需的。在数据库层面上执行引用完整性的能力是使ACID中的C成立所必需的。
至于您对性能方面的担忧,通常会有一些性能成本,但可能会非常小。我建议您放置所有的外键约束,并且只有在您无法通过其他方式解决实际性能问题时才尝试不使用它们。