[erlang-questions] Better way to check if a set of keys exists in a mnesia table?
Chaitanya Chalasani
cchalasani@REDACTED
Fri Jul 15 15:34:34 CEST 2016
Thank you Eric. I would ponder on that.
> On 15-Jul-2016, at 17:10, Éric Pailleau <eric.pailleau@REDACTED> wrote:
>
> Hi,
> I would probably add a record entry with second element of the UUID: xxxxxxxx-4c31-...
> 43c1 here and add an index on it.
> It may increase speed a lot on big tables.
> This have to be tested however.
>
> "Envoyé depuis mon mobile " Eric
>
>
>
> ---- Chaitanya Chalasani a écrit ----
>
> I have a table with an UUID as the primary key / first element of the record.
>
> What is the efficient way to check if a given set of UUIDs are valid primary key for that table.
>
> I can think for three different solutions -
> use mnesia:all_leys(TableName) and perform lists subset check. However, if the table contains over a million records, fetching all the keys for every check isn’t a nice solution.
> use mnesia:read(TableName, Key) and check on the response. However, if the row is a big enough, trying to get the whole row for a simple key check isn’t that good either.
> use ets:member(TableName, Key). A better solution than the above but doesn’t work on remote tables.
>
> Which one of the above is the least bad solution or is there a better one hidden under the documents.
>
> /Chaitanya
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20160715/36b851c0/attachment.htm>
More information about the erlang-questions
mailing list