I have a general question about this. There are many times we want to change data-types of fields or collations when lots of data is inserted before. Consider these situations :
converting
varchar
collation fromutf8_general_ci
tolatin1_swedish_ci
: as I know the first has multibyte chars and the second singly byte ones. Does this conversion manipulate stored records correctly? And does this conversion lead to reduction of volume of existing data (maybe 50%)?Conversion of
int(10)
tosmallint(5)
: Does the volume of data reduce to 50% correctly?Or for example:
int(10)
tounsigned int(10)
-text
tovarchar(1000)
-varchar(20)
tochar(10)
, ...
As it is obvious, these actions might be done to increase efficiency, reduce volume of data and ...
Consider I have a table with 1,000,000 records. I want to know if doing such actions have bad effects on stored data, or if it makes low performance for future inserts and selects involving this table.
UPDATE :
When I talk about changing utf8 encoding charset to Latin, of course the values of my field are English (it's obvious if there are Japanese, they will be lost). With this assumption, I'm asking about the resulting table size and performance.