0
我有一個4 GB的表,默認字符集被設置爲utf8,雖然我只保存latin1字符。 我在測試機器上使用alter table語句將其更改爲latin1。 索引文件log_details.MYI,減少5%,而沒有在數據文件中指出的差異,log_details.MYD默認字符集的重要性
我有幾個問題:
1)我應該改變對生產的表?這值得麼?
2)它會提高選擇速度嗎?
3)我想我可以有更長的索引,一旦我將默認字符集更改爲latin1。任何 其他優勢?
我也注意到,在使用alter table語句更改默認字符集之後,varchar列類型自動更改。 Item_ID
varchar(32)字符集utf8如何避免這種情況?
mysql> create table char_test(id int, Item_ID varchar(32)) default charset = utf8;
Query OK, 0 rows affected (0.02 sec)
mysql> insert into char_test values (1, 'abc');
Query OK, 1 row affected (0.00 sec)
mysql> show create table char_test\G
*************************** 1. row ***************************
Table: char_test
Create Table: CREATE TABLE `char_test` (
`id` int(11) default NULL,
`Item_ID` varchar(32) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
mysql> alter table char_test default charset = latin1;
Query OK, 1 row affected (0.03 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> show create table char_test\G
*************************** 1. row ***************************
Table: char_test
Create Table: CREATE TABLE `char_test` (
`id` int(11) default NULL,
`Item_ID` varchar(32) character set utf8 default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)