mnesia vs ets

Roberto Ostinelli roberto@REDACTED
Wed Oct 28 01:49:44 CET 2009

dear all,

i am populating a mnesia disc_copies table with 20,000 records like this:

WriteFun = fun() -> [mnesia:dirty_write({test_table, K, {}}) || K <-
lists:seq(1, 20000)] end,
mnesia:activity(sync_dirty, WriteFun).

then i try reading from the table using mnesia:

[mnesia:dirty_read(test_table, K) || K <- lists:seq(1, 20000)].

and then using ets:

[ets:lookup(test_table, K) || K <- lists:seq(1, 20000)].

benchmarking the two ways of reading gives the following results:

MNESIA: 29473.89 rows / min.
ETS: 93312.60 rows / min.

this means that with ets reading speed is 3x than dirty_read with MNESIA.

am i missing something here, or is this normal?


More information about the erlang-questions mailing list