I'm never 100% sure I understand how the idl cache works, but as I understand it, it caches the index keys of common searches, where the attributes are indexed. Assuming my understanding is correct, my question has to do with how things behave when some of the attributes are indexed, and some aren't. For example, assume:
a - indexed eq, a match only returns a single entry in the DB b - unindexed, only has one possible value if present c - unindexed, only has one possible value if present
A query of (&(a=x)(b=y)(c=z)) performs very quickly because the a=x filter is applied first, and locates the object, with the remaining pieces of the filter being applied to the entry that was found. My question is, does this query end up in the IDL cache?
I played around with this somewhat, and I see no difference in search times between:
(a=x) (&(a=x)(b=y)) (&(a=x)(by=y)(c=z))
In this usage case, then, is there really any benefit to indexing b & c?
--Quanah
-- Quanah Gibson-Mount Principal Software Engineer Zimbra, Inc -------------------- Zimbra :: the leader in open source messaging and collaboration