In the last episode (May 24), Michael Gale said:
> Currently I have a large mysql table (36 million rows) and according
> to the mysql-admin the data length is 6.5GB and my index length is
> 8.8GB.
> 
> I am new to mysql, but I would assume that my index should not
> consume more space then my data ?
> 
> But in order to provide the data in a timely manner I do not believe
> I can remove any of my indexes as there were all added as a result of
> a query taking 30-40 minutes.

If you have multiple-column indexes and they overlap, you can easily
end up with more space used up in indexes than data.  For example: two
indexes, one on (firstname,lastname), and the other on
(lastname,firstname).

Also, if you have a lot of deletes and updates, your indexes will end
up with unused space in the index blocks.  The table space freed up by
a deleted row can be reused by any row, but if you are indexing on last
name, the space freed up in an index block by deleting a row with
"Smith" in it can only be filled by another "Smith".  That's why it's a
good idea to run "optimize table" occasionally if you make lots of
changes to your tables.  That will rebuild your indexes and remove the
slack space.

-- 
        Dan Nelson
        [EMAIL PROTECTED]

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to