[英]rails, optimize db query
我有這樣的模型結構:
class Entity < ActiveRecord::Base
habtm :properties_1
# ...
habtm :properties_N
end
我需要通過任何一組屬性編寫請求,這會導致N個連接:
Entity.joins(:properties_1, :properties_N).where("properties_1.id = ? AND properties.N = ?", p1_id, pN_id)
N可能> 20
我可以使用什么來提高查詢性能?
我考慮過將所有這些設置緩存到具有序列化屬性的大表中,但是看起來這個問題很常見,並且可能存在任何已存在的解決方案。
有任何想法嗎?
感謝前進!
這看起來像Entity-Attribute-Value(EAV)模式。
http://www.slideshare.net/stepanyuk/implementation-of-eav-pattern-for-activerecord-models-13263311
https://github.com/kostyantyn/hydra_attribute
EAV在關系數據庫中不是一個好的解決方案,最好使用像MongoDB這樣的面向文檔的數據庫
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.