I must store countless Web addresses inside a database, and have the ability to find rows by URL rapidly.

MySQL's string indexes aren't quick enough with this, simply because they only index the very first 4 figures from the string, which can be www., after which MySQL iterates over all of individuals rows beginning with www. and blogs about the value using the URL I looked for.

MongoDB does not allow you to personalize the number of figures are indexed for strings, and the docs aren't very detailed, and so i don't believe MongoDB is appropriate.

Google Application Engine includes a special URL type, that is great, however i can't use GAE.

Any suggestions?

MySQL's string indexes aren't quick enough with this, simply because they only index the very first 4 figures from the string, which can be www., after which MySQL iterates over all of individuals rows beginning with www. and blogs about the value using the URL I looked for.

This isn't true. MySQL can index as much as 1000 bytes for MyISAM and 767 bytes for InnoDB.

Should you just have literal matches for the URL strings, index their hashes.

This can keep the index size low (16 byte per key if you are using something similar to MD5) and also the key values is going to be distributed evenly.

If you are using MySQL, read pages 103-104 of High Performance MySQL (2nd ed.) (link enables you to definitely search inside book - search for "pseudohash"), which provides coverage for hashing method for indexing Web addresses. Most significantly, it indicates using MySQL's CRC32 function rather than MD5 for better performance since it creates a shorter value that may be in comparison more quickly.