[erlang-questions] Mnesia multi-table joins
Dana.RUBINO@REDACTED
Dana.RUBINO@REDACTED
Tue Sep 30 17:49:31 CEST 2008
Hi all,
Changed subject of my last thread as it wasn't a performance issue!
I have done some more digging and found that Mnesia appears to support only joins across two tables.
I have tried a cut down version of the below query using the two big tables only and it is lightning quick.
Does anyone know if there is a way to perform joins across more than two tables?
I fear I will have tripped on the last hurdle (I am currently prototyping a proposed system) if I cant perform joins across more than two tables.
Many Thanks,
Dan
-----Original Message-----
From: RUBINO, Dana, GBM
Sent: 30 September 2008 15:59
To: erlang-questions@REDACTED
Subject: Extremely poor Mnesia performance
Hey all,
I am doing some benchmarking with Mnesia at the moment and am pretty disappointed to say the least.
I'm hoping I am doing something wrong.
Running a 5 table join below: (two of the tables have ~50k rows the rest a couple of hundred)
execute(qlc:q([I#i.user_id || I <- mnesia:table(i),
C <- mnesia:table(c),
I#i.user_id =:= C#c.user_id,
I#i.group =:= "Group A",
P <- mnesia:table(p),
T <- mnesia:table(t),
S <- mnesia:table(s),
C#c.platform_id =:= P#p.platform_id,
C#c.trans_id =:= T#t.trans_id,
C#c.sales_id =:= S#s.sales_id
])).
On a normal RDBMS this query returns in < 1min. I am yet to get a result from Mnesia and its been running for 10 mins.
Is there anyway I can see what's going wrong with this query under the hood?
Thanks,
Dan
***********************************************************************************
The Royal Bank of Scotland plc. Registered in Scotland No 90312. Registered Office: 36 St Andrew Square, Edinburgh EH2 2YB.
Authorised and regulated by the Financial Services Authority
This e-mail message is confidential and for use by the
addressee only. If the message is received by anyone other
than the addressee, please return the message to the sender
by replying to it and then delete the message from your
computer. Internet e-mails are not necessarily secure. The
Royal Bank of Scotland plc does not accept responsibility for
changes made to this message after it was sent.
Whilst all reasonable care has been taken to avoid the
transmission of viruses, it is the responsibility of the recipient to
ensure that the onward transmission, opening or use of this
message and any attachments will not adversely affect its
systems or data. No responsibility is accepted by The
Royal Bank of Scotland plc in this regard and the recipient should carry
out such virus and other checks as it considers appropriate.
Visit our websites at:
www.rbs.com
www.rbs.com/gbm
www.rbsgc.com
***********************************************************************************
More information about the erlang-questions
mailing list