我有一个列created_time
(DateTime)的表和一个foreign_key我需要检索x
foreign_key的所有行,用x
foreign_key创建的最后一行是让我们说的超过2分钟(并检索该日期的所有行)
我的问题:性能更好,每次创建行时添加存储最后一行创建日期的列,或者使用更复杂的查询来检索这些行最后一行加入?
答案 0 :(得分:5)
基本上问题是"我应该对created_time进行非规范化吗?"这里的答案是,从性能的角度来看,正确索引集的差异是可忽略,如果非规范化,这将导致整个架构中的数据重复,这可能会引发一天的其他问题。从这个角度来看,我的建议是不要这样做,并使用SQL的表达能力来检索你需要的东西。
答案 1 :(得分:0)
通过对created_time进行非规范化,你正朝着平面表设计方向发展并最终创建一个NoSQL数据库,我认为这不是你想要遵循的方法。既然你使用的是SQL,你应该使用SQL查询功能EXPLAIN关键字并注意运行查询所需的时间。我相信处理所有行不会花费太多时间。