0

Assuming the data is the same either way, does the maximum length of the VARCHAR affect the space usage of a secondary index? Does InnoDB use fixed length records for indexes?

Assume that we're talking about MySQL 5.1, with the InnoDB COMPRESSED table format and that the field in question is defined as a VARCHAR with some length less than or equal to 255 (so that it uses only one byte for the offset).

Here is the use case:

I have a server with a very large table (several gigabytes). One of the fields is currently VARCHAR(7). We need it a little longer and we are thinking of making it VARCHAR(255), but we are worried that it bloat the index.

1 Answer 1

1

Nope, innodb doesn't fully expand varchar fields when used in secondary indices.

Yves Trudeau has a good blog entry from a couple years ago that proves this explicitly by digging into innodb pages with the innodb recovery tool: http://www.bigdbahead.com/?p=150

Not the answer you're looking for? Browse other questions tagged .