Tam*_*Tam 19 mysql sql database-design
我正在构建Ruby on Rails 2.3.5应用程序.默认情况下,Ruby on Rails不提供外键约束,因此我必须手动完成.我想知道引入外键是否会降低数据库端的查询性能,使其不值得做.在这种情况下的性能是我的首要任务,因为我可以检查数据与代码的一致性.你一般的建议是什么?你推荐使用外键吗?你怎么建议我应该测量这个?
tim*_*dev 21
假设:
然后我猜你会通过让MySQL强制执行完整性来获得更好的性能.毕竟,实现引用完整性是数据库引擎优化的功能.编写自己的代码来管理Ruby中的完整性比较慢.
如果您需要从MyISAM移动到InnoDB以获得FK功能,您需要考虑两个引擎之间的性能折衷.
如果您还没有指标,则需要决定是否需要它们.一般来说,如果您执行的读取次数多于写入次数,则需要(甚至需要)指标.
在当前编制索引的内容之上堆叠FK应该比在应用程序代码中实现这些类型的检查导致更少的整体性能损失.
一般来说,更多的键(外来或其他)将降低INSERT/UPDATE性能并提高SELECT性能.
数据完整性带来的额外好处很可能总是值得添加外键带来的性能下降.如果快速应用程序中的数据是垃圾(缺少部件或其他等),它有什么用?
在这里找到类似的查询:外键是否提高了查询性能?