Indexes are additional auxiliary access structures with typically provide either faster access to data or secondary access paths without effecting the physical storage of the data.
They enable efficient access to records based on the indexing field(s) that are used to construct the index. Any field of the file can be used to create an index, and multiple indexes on different fields can be constructed on the same file. To find a record or records in the data file based on a search condition on an indexing field, the index is searched, which leads to pointers to one or more disk blocks in the data file where the required records are located. The most widely used types of indexes are based on ordered files (single-level indexes) and tree data structures (multilevel indexes, B+-trees). Indexes can also be based on hashing or other search data structures.