Are DNs optimized in any way, for lookup or storage? Or are they merely packed into strings and searched lexicographically? I'm curious because DNs are the only allowed key for the referential integrity. If they are searched using string operations, that would be pretty slow relative to shorter strings (UID) or plain old Int values.