我在riak上运行Erlang Map / Reduce。在一个存储桶中有57000条记录,我的地图阶段将过滤记录获得14秒。
-module(chatlogs).
-author("gopi").
%% API
-export([getListForUser/3]).
getListForUser(Obj,_kd,Chat_id) ->
case catch mochijson2:decode(hd(riak_object:get_values(Obj))) of
{struct, Data} ->
Event_list = [<<"INTRO_MSG">>, <<"QUESTION">>, <<"VALID_ANSWER">>, <<"NEW_MSG">>],
case proplists:get_value(<<"chat_id">>,Data) == Chat_id of
true ->
case lists:member(proplists:get_value(<<"Event-Name">>,Data),Event_list) of
true->
[Data];
false->
[]
end;
false ->
[]
end;
_ ->
[]
end.
有没有更好的方法来降低和改善代码性能