Hashing is a lookup technique. Basically, it is how to map keys to values. A hash function converts a string into a fixed-length value (usually shorter). This value can be used as an index to store the original element.   Hashing can be used to index and search for items in a database within a given amount of time using the appropriate hash function. This is faster than other search techniques.  Advantage of Hashing:  Hash tables are ideal data for point searches (aka equality queries), because they can search, insert, and delete data in constant time regardless of the input size and structure.  Disadvantages of Hashing:  Hashing may not always be the best option. For small data, for example, the cost of a good hash function makes hashing more expensive than a simple sequential lookup.  Another situation is range scan operations (aka range queries). A B+ tree is the ideal data structure for this operation.  Next situation is when looking for a substring or prefix match. Hashes are essentially useless for these operations.   Another drawback of hashing is scalability. Hash table performance degrades as the database grows (more collisions, higher collision resolution costs).