Hello,
> those 'silent column specification changes' affect all table types. That
> feature has caused lots of user questions over years. It is in the TODO to
> remove that feature from MySQL, because it is not standards compliant. In
> InnoDB, a reason to use a CHAR column in some cases is to reduce
> fragmentation if there are lots of updates to that column. A CHAR column
> takes a fixed space. Silent column specification changes in many cases
> defeat this optimization which would otherwise be available to users.
I had a very long discussion with someone about this...
He said the same as you.
IMO, this is rubbish. Why should a CHAR column take
up fixed space??
CHAR is a logical datatype. How you store it physically
is up to the database engine implemenation.
That means you can store it as number of flowers in a
vase, or whatever ;-)
No, seriously: there's no reason why you cannot store
CHARs as VARCHARs, or put an extra compression
over it, and return/use the values as char-padded values.
With regards,
Martijn Tonies
Database Workbench - developer tool for InterBase, Firebird, MySQL & MS SQL
Server.
Upscene Productions
http://www.upscene.com