[erlang-questions] clarify: mnesia slowdown with extra indexes ???
Zoltan Peter Toth
zoltan.peter.toth@REDACTED
Mon Mar 2 14:02:03 CET 2009
(no change, just repost with correct tagging so that I'll get the tons
of responses :)
Zoltan Peter Toth wrote:
> Hi,
>
> I made some test on mnesia object matching on non-key attributes.
>
> Got a table like this:
> mnesia:table_info(tgccDevIdToTerminationTable,size).
> 27000
> mnesia:table_info(tgccDevIdToTerminationTable,attribute.)
>
> [deviceId,terminationId,sessionId,mgId,deviceChar, deviceBitMask,chId]
>
> No extra index exists.
> A match on the mgId attrib gives:
>
> element(1,timer:tc(mnesia,dirty_match_object,[tgccDevIdToTerminationTable,
> {'_','_','_','_',200021,'_','_','_'}])).
> 5578
> 5612
> 5571
> 6064
> 5622
>
> Now I added an index on the mgId:
> mnesia:add_table_index(tgccDevIdToTerminationTable,
> mgId). {atomic,ok}
>
> ...and the matches slowed down:
> 6542
> 6420
> 6302
> 6430
> 6519
>
> This is determinitstic. If I remove the extra index, it becomes faster
> again.
> The same even if specifying the index explicitly with
> dirty_index_match_object().
> This is a live system with all the mnesia nodes up. R12B on quad core.
>
> Any comment on this ? Or is a table with 27000 rows too little to take
> advantage of the
> extra index ???
> Br,
> TZP.
>
>
More information about the erlang-questions
mailing list