[erlang-questions] How performant is ets:select ?

Jachym Holecek freza@REDACTED
Sat Jul 4 14:42:03 CEST 2015


# Benoit Chesneau 2015-07-04:
> Does anyone have links or knows how ets:select is performing? Not that I
> have any issue with it right now, but I am wondering if there are already
> some benchmarks or known limits about it I should be aware.
> 
> Also how does it works internally, the doc let me think it is traversing
> all the keys but not sure about it.

The ordered_set variety should be doing a prefix scan whenever it can,
rather than full table scan. Not sure how strong it is at figuring out
more general range-scans.

Some discussion is here:

  http://www.erlang.org/doc/efficiency_guide/tablesDatabases.html

The ets:select/3 + ets:select/1 variants can help you place upper bounds
on some of the costs, a bit indirectly perhaps. That's more on the safety
engineering side of things I suppose.

Breaking things into multiple tables of appropriate types and layouts as
suggested by Max is sound advice -- once you have a solid data model and
understand your access patterns well.

HTH,
	-- Jachym



More information about the erlang-questions mailing list