To start with, if you have a table with 100 fields, then more than likely, you have not normalized
your data. Here's a link
on how to go about doing so.
As far as an index, an index is different from a primary key (although a database will automatically create a "unique index" based on the primary key). An index helps a database increase the performance of searches on the data held within the table, although it slows down writes to the table.
For example, given a table T with columns such as
T.id (primary key)
By definition, the database will create an index on T.id since it is the primary key. Say you would like to run a select and sort it by name, then it (may
) be advantageous to have an index defined on Last_name, First_name and Middle_name.
Additionally, you may want to sort or group your output by age, so an index on the date_of_birth would help there.
A final UNIQUE index defined on Last_name, First_Name, Middle_initial and Date_of_birth would help to ensure that you don't enter the same person twice (although I guess it could be possible to have two people with the same exact name born on the same date).