At 16:55 +0100 3/26/02, Roger Baklund wrote: >* Paul DuBois >> At 15:23 +0100 3/26/02, Tino Didriksen wrote: >> >Question about the CHAR to VARCHAR conversion of: >> >http://www.mysql.com/doc/S/i/Silent_column_changes.html >> > >> >Now, I can see the logic in changing most CHAR to VARCHAR if >> they are long >> >and variable sized. >> >I have a column that is VARCHAR(32). I use it to store MD5 hash >> values. MD5 >> >hashes are always 32 byte. >> >In other words, that's 1 byte wasted because it's VARCHAR. >> > >> >With 2500 entries and more on the way, that's at least 2500 byte wasted. >> > >> >Is there no way to enforce a column type around the silent changes? >> >> No. It makes no sense to do so. > >well... even if 2500 bytes is insignificant, I think his question makes >sense... > >The only way I know to enforce CHAR is to make sure all other columns in the >table are of fixed size types... ie not *TEXT, *BLOB or VARCHAR.
That's why it doesn't make sense to have just a single column be CHAR. As soon as a table has even one other variable-length column, the entire table becomes a variable-length-row table and any advantages of having fixed-length rows are lost. Even in the case that a column might always have 32 bytes, the single-byte advantage that you might get from using a CHAR are presumably offset by savings in the other variable-length columns. If the latter is not true, then those columns should be changed to fix-length types anyway. > >-- >Roger >query --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php