在MySQL中,我有许多相关的表:
我需要定期从tableA遍历到tableD,例如列出tableA中的记录以及tableD中相关记录的计数。这将导致繁琐的代码和潜在的性能瓶颈。
另一种方法是在tableD中创建一个引用tableA的FK。严格来说,这将是一个冗余密钥,但我认为我可以轻松地管理值的更新(以避免数据完整性问题)。我认为性能改进很重要,代码更具可读性。
我是否正在前往这个充满痛苦的世界?或者是其他地方看到的模式?我打算给钥匙贴上标签,以便明确它只是方便,而不是规范性参考。
答案 0 :(得分:1)
这不是你通常会做的事情。使用tableB
和tableC
上的正确索引,连接的性能应该足够好。
如果您发现这还不够,那么您应该尝试更多英雄措施 - 例如重复的外键。在这种情况下,我认为即使在出现任何性能问题之前也没有理由过早地优化数据库。