Picture a data as just a pile of
information like all the chapters of a book on the floor in a pile.
Indexes are like the indexes of
a book
- One usually puts the book in the order the author intended (Primary Key)
- Several other might order specific things like give me a way to find the first page a character appears on or all the fight scenes. (indexes)
Each of these allow you to
either get a collection of pages or a specific value without having to start at
page one and make a list of the values you want. For example, I want to know when
Chad is first mentioned in a book. Without the index I have to start at page
one of the book and read it until I find chad even if he is only on the last
page. With the index of characters I would call up a list of the characters by
name and it would tell me the page number. As you can see the lookup took a lot
less time and fewer resources.
That is the good. In life
nothing is free. For the index to be any good it has to be maintained when data
changes especially inserts and deletes. Every index slows the time for these
down. The key then is to only add indexes that have value to what the users are
doing. Therefore we look at how often it is used before making a choice. For
example, if you are only going to look for Chad once when you read the book the
first time there is no value in making and maintaining a list of character
entry points so you wouldn’t waste time with it.
No comments:
Post a Comment