我对此有一个一般性的问题。很多时候我们想要在之前插入大量数据时更改字段或排序规则的数据类型。考虑这些情况:
将
varchar
排序规则从转换utf8_general_ci
为latin1_swedish_ci
:据我所知,第一个具有多字节字符,第二个具有单字节字符。此转换是否正确操作存储的记录?这种转换是否会导致现有数据量的减少(可能减少 50%)?转换
int(10)
为smallint(5)
:数据量是否正确减少到 50%?或者例如:
int(10)
tounsigned int(10)
-text
tovarchar(1000)
-varchar(20)
tochar(10)
, ...
很明显,可以采取这些措施来提高效率、减少数据量并...
考虑我有一个包含 1,000,000 条记录的表。我想知道执行此类操作是否会对存储的数据产生不良影响,或者它是否会降低将来涉及该表的插入和选择的性能。
更新:
当我谈到将 utf8 编码字符集更改为拉丁语时,我的字段的值当然是英语(很明显,如果有日语,它们就会丢失)。有了这个假设,我问的是结果表的大小和性能。