I seems like you are telling me the more items you have to search the same speed it goes.
If you really have that solution please post it here.
It's a question of how much longer it takes. Searching a properly configured tree is at worst O(log N) and can do better. However, that only describes the general shape of the curve. The fact is that tree searches are fast. A search is more dependent on the length of the key than it is the number of entries in the tree.
As part of my previous job, I wrote a billing system for a voice system. In order to work out what basic pricing plan was required for a given call, you had to look up the number. Not all of it, but find the longest matching prefix and use whatever pricing code it pointed to.
We had a database with literally hundreds of thousands of number prefixes in it that each mapped to info/price data. Prefixes could be as long as an entire phone number, but typically varied from just 2 digits up to 10 or so.
The code loaded these into a trie, where you had a node structure in which there were up to 10 child nodes (one per digit) and a pointer to a data record (if any) for the current node.
Take a number, and pointing at the root of the trie, for each successive digit, attempt to get the next child node, until you get to a leaf node. Along the way, collect any data record entries so that you can build a breakdown of the number (eg UK National / Manchester / Rusholme).
Despite having around a million nodes in the trie, searching it was lighting fast. You exhaust the search as soon as you hit a leaf node, so your number might be 14 digits, but your longest match might be found after just 6.
This code (written in straight C++) was capable of performing over 15 million such lookups a second on the machine. The actual application, which needed to process data from several database tables and output them to another was entirely IO bound in the end.
In short, searching a tree structure is
not slow.