如何以更有效的方式获得价值记录?
目前我正在这样做:
Coupon = [P || P <- kvs:all(company_coupon), P#company_coupon.company_id == C#company.id],
我的问题是针对kvs:all(...)。在数据库中,首先获取所有条目然后匹配它们通常是相当昂贵的。
有更好的方法吗?
PS:&#34;列出:keyfind&#34;还需要首先提供所有记录,然后通过循环运行它们。
你们是怎么做到的?
干杯!
答案 0 :(得分:1)
如果之前将字段设置为键,则可以使用kvs:index(table,field,value):
#table{name=user,fields=record_info(fields,user), keys = [field]}
答案 1 :(得分:0)
当您使用像erlang或lisp这样的函数式语言时,在大多数情况下,遍历数据是不可避免的,而sql不需要它。因此,如果您将数据存储在支持sql的postgres数据库中,但是如果您不需要保存数据,那么最好使用sql执行此操作。