For a million or more entries he should use a real database instead of a hash table. Think about it, a non-binary hash table entry can hold around 940 characters (bytes). Without knowing the specific use we'll have to assume that on average each entry is half filled (460 bytes). 460B * 1000000 = 448.23MB. Even today most computers ship with around 512MB of main memory, and a modern OS like XP will easily take up 100MB of that, it's simply not practical to use that kind of memory.