Indexes help to select and find records efficiently. There are two main types: clustered indexes which determine the physical order of data in a table, and non-clustered indexes which are maintained separately. Index organization involves data being stored in pages that can split when full, and fill factor determines the percentage of each page initially used for data storage. Good indexes have low maintenance columns with infrequent changes and cover commonly used query conditions, while poor indexes involve unused columns or those returning many rows. Unique constraints and indexes validate data uniqueness in the same way.