Question: *This is a multipart Index question:*

1. Is there a way one can create index
on index?
2. Why would one wish to to so?
3. And if so, are there any examples?

Answer: 
**NO**, Indexes are meant for **COLUMNS IN TABLES**

[How MySQL Uses Indexes](http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html)

> 
> Indexes are used to find rows with
>  specific column values quickly.
>  Without an index, MySQL must begin
>  with the first row and then read
>  through the entire table to find the
>  relevant rows. The larger the table,
>  the more this costs. If the table has
>  an index for the columns in question,
>  MySQL can quickly determine the
>  position to seek to in the middle of
>  the data file without having to look
>  at all the data. If a table has 1,000
>  rows, this is at least 100 times
>  faster than reading sequentially.
> 
> 
>
An index is already sorted so really you probably do not want to create an index to one as such. You might, however, if doing low-level programming, want to store a subset of an index, say every 1024th or every 2048th record, in memory or a smaller area of disk, so you can look there first and search where in the bigger index a record lies.

The "square root" rule works well here. So if the table has 4 million entries, that is 2048 \* 2048 (approx). You "load" 2048 records and then find which 2048 record section of the main index you need to load in order to find the record, thus you load only 2 blocks in total rather than having to binary-search through 2048 blocks.

This can be a huge optimisation but it is for low-level programmers, i.e. developers of database tools, not users of them.