簡體   English   中英

Rails,優化數據庫查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM