我正在使用Ruby on Rails 3.0.7和MySQL5。在我的应用程序中,我有两个数据库表,即TABLE1和TABLE2,并且出于性能原因,我对TABLE2中的某些数据进行了非规范化,因此我在该表中重复了TABLE1的值。现在,在TABLE1中,我需要更新一些涉及的值,当然,我还必须在TABLE2中正确地更新非规范化的值。
我该如何以高效的方式更新这些值? 也就是说,如果TABLE2包含很多值(1.000.000或更多),什么是保持更新两个表(技术,实践,…)的最佳方法?
在更新数据库表的时间内会发生什么?例如,用户在访问某些涉及那些非规范化值的网站页面时可能会遇到一些问题?如果是,那是什么,我该如何处理?
有几种方法可以处理这种情况:
"after_update :sync_denormalized_data"
这些类型的问题是 非常 特定于应用程序的。即使在同一个应用程序中,根据所涉及的灵活性和性能要求,您可能会使用多种方法。