我应该对我的表进行非规范化,是否应该对FK列进行非规范化

问题描述 投票:2回答:2

我有一个列created_time(DateTime)的表和一个foreign_key我需要使用x foreign_key检索所有行,使用x foreign_key创建的最后一行是超过2分钟(并检索该日期的所有行)

我的问题:什么对性能有好处,每次创建一行时添加一个存储最后一行创建日期的列,或者使用更复杂的查询来检索最后一行加入的那些行?

mysql sql database denormalization
2个回答
5
投票

基本上问题是“我应该对created_time进行非规范化吗?”这里的答案是,从性能的角度来看,正确索引集的差异可以忽略不计,如果非规范化,这将导致整个架构中的数据重复,这可能会引发一天的其他问题。从这个角度来看,我的建议是不要这样做,并使用SQL的表达能力来检索你需要的东西。


0
投票

通过对created_time进行非规范化,你将面向平面表设计并最终创建一个NoSQL数据库,我认为这不是你想要遵循的方法。由于你使用SQL,你应该使用带有EXPLAIN关键字的SQL查询功能和注意运行查询所需的时间。我相信处理所有行不会花费太多时间。

© www.soinside.com 2019 - 2024. All rights reserved.