您好,欢迎访问一九零五行业门户网

高性能MySql进化论:提速Alter Table

欢迎进入linux社区论坛,与200万技术人员互动交流 >>进入 在使用alter column mysql flush status; mysql alter table dictionary - alter column mean set default'default2'; query ok, 0 rowsaffected (0.03 sec) records: 0 duplicates: 0 warnings: 0
欢迎进入linux社区论坛,与200万技术人员互动交流 >>进入
在使用alter column
mysql> flush status;
mysql> alter table dictionary
-> alter column mean set default'default2';
query ok, 0 rowsaffected (0.03 sec)
records: 0  duplicates: 0 warnings: 0
mysql> show statuswhere variable_name like 'handler%'
-> or variable_name like 'created%';
+----------------------------+-------+
| variable_name              | value |
+----------------------------+-------+
|handler_read_rnd_next      | 0     |
|handler_savepoint_rollback | 0     |
| handler_update             | 0     |
| handler_write              | 0     |
2    修改frm文件
通过修改frm文件的方式来提高修改表结构效率的步骤大概如下
1.       备份相关的数据库文件
2.       创建一张和旧表完全相同的表结构
mysql>create table dictionary_new like dictionary;
3.       执行flush tables with read lock. 所有的表都被关闭
mysql> alter table dictionary_new
-> modify column mean varchar(30)default 'defaulr#';
mysql> flush table with read lock;
5.       把dictionary_new.frm文件重名为dictionary.frm
6.       执行unlock tables
mysql> unlock tables;
mysql> insert into dictionary(word) values('random');
mysql> select * from dictionarywhere word='random';
从下面的结果可以看出,默认值已经被改掉,且不涉及到内容的改变
+--------+--------+----------+
| id     | word  | mean     |
+--------+--------+----------+
| 110004 |random | defaulr# |
+--------+--------+----------+
7.        drop dictionary_new
  [1] [2]
其它类似信息

推荐信息