Sye*_*idi 8 database performance foreign-key-relationship
我刚开始在一家小软件公司实习,我正在研究ERP.我的团队负责人禁止我在数据库中创建任何关系.由于这是我的实习,我感到震惊,因为到目前为止我已经读到关系是确保数据完整性所必需的.我的团队负责人告诉我,我们可以在前端强制执行数据完整性.经过一些研究后,我发现外键确实使数据库速度变慢,但索引外键可以提高性能.
如果索引外键可以提高性能,那么下面的两个更好:
1.)确保应用层的数据完整性规则
2.)索引外键
感谢帮助.
通常,您的数据模型越复杂,您将体验到的性能命中度就越高.但是,除非您的数据库非常大,您的硬件资源非常少,或者您的查询非常复杂,否则您可能不会因在数据库中添加强制关系而受到阻碍.这显然是一种主观陈述,但"可接受的表现"是一个非常主观的概念,因项目而异.
不过,你同事的论证的核心是正确的,原因如下:
那就是说,这就是为什么这些论点大多无关紧要:
这些都取决于您的RDBMS和项目的规范,但这是很好的经验法则.一般来说,我会说,除非您的数据库太大以至于执行关系变得非常慢,或者您的模型非常简单以至于关系毫无意义(在这种情况下,您为什么使用RDBMS?),最好启用数据完整性和关系约束.