请原谅我的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