請原諒我的Ruby/Rails無知,我還在學習。提高find_by方法匹配字符串的性能?
詳情:
我有兩個mongodb表。 people
有214條記錄,people_org
有107條,這隻會在未來增加。這些表格之間唯一的唯一聯繫是一個人的姓名,平均約15個字符。我目前無法控制此數據庫結構。
當前我循環瀏覽每個people
對象,然後使用find_by
查找匹配記錄,打印我需要的ID並打印一些信息。
<%@people.each do |p|%>
...
<%[email protected]_org.find_by(name: p.name).id%>
...[priting a few paragraphs of text]...
<%end%>
...
<%end%>
問題:
性能是相當緩慢(〜10秒)。
可能的解決方案:
(1)我們的團隊可以適應不依賴於字符串匹配和使用整數,而不是一個結構(我相信這會提高性能)。
(2)也許有一種更有效的方法?
(3)也許有一種方法可以準備或更改數據以進行更高效的排序?
非常感謝您的幫助。
「人」和「people_org」之間是否有關聯? – Vishal
您可以使用MongoDB提供的查找聚合:https://stackoverflow.com/a/35948843/2100645 –
您使用的是mongoid嗎? – Anthony