I believe one thing that can cause degradation in performance, is that the
IN LIST operator does a linear search across an array (maybe I'm wrong...).
Perhaps Neo4J could turn the list into a hash before execution so that testing for membership is faster.
The documentation doesn't say otherwise. If Cypher does treat a LIST as a hash when doing a membership test, it should say so in the documentation.
IN LISTit is actually turned into a (hash)-set on the first iteration so subsequent uses of that list use the companion hashset internally.
if there is an index on
:Article(id) it will send the whole list to the index instead doing an
So it should be reasonably fast if there is enough RAM and/or fast IO.