Originally published at
Ruby on Rails c нуля!. Please leave any
comments there.
Если вы являетесь разработчиком на платформе Rails, то вы, должно быть, знакомы с кэшированием запросов в Active Record. Кэширование запросов - очень полезная составляющая Active Record, которая сокращает ненужные SQL запросы и предоставляет значительное увеличение производительности, особенно при обращении к ассоциациям. Поблема с кэшированием запросов, однако, возникает тогда, когда при получении двух идентичных записей из базы данных, мы получаем два объекта в оперативной памяти.
user1 = User.find(1) # => #
user2 = User.find(1) # => #
user1 == user2 # => true, b/c AR::Base recognizes that
# они имеют одинаковый первичный ключ
user1.object_id == user2.object_id # => false, b/c these are two
# но являются двумя разными объектами
Read the rest of this entry »