Indexes are data structures that improve retrieval speed for data in a database. They work by sorting field values and storing pointers to records, allowing for faster searching. Indexes should be used on fields involved in searches, joins, or with high cardinality. There are different types of indexes including clustered, non-clustered, unique, non-unique, bitmap and full text. Indexes are created using SQL commands and their information can be displayed and deleted as needed.