1.克隆表
当你需要创建一个恰好怀某个已有表结构一致的表时,可以使用
create table...like语句来克隆表结构;使用insert into...select
语句克隆部分或者全部表数据。
2.临时表
需要一个创建仅供临时使用,并且自动删除的表?那么用临时表吧,
可以使用create temporary table..语句来创建一个临时表,在和
mysql服务器的连接关闭之后,创建的临时表将被自动删除。
普通的建表语句:
create temporary table tbl_name(...列定义...);
根据查询结果建表:
create temporary table tbl_name select ...;
需要注意的是保证临时表名在应用程序内部唯一。
临时表具有的另外一个特性是,临时表可以使用普通表的表名。
这样做的结果是,在临时表的生命周期内,它将与之同名的普通表,
利用这个特性,可以创建一个普通表的临时备份,对临时表可心做
任意操作,而不影响真实数据。
3.检查或改变某个表的存储引擎
mysql支持多种存储引擎,每一种都有不同的特性。例如,InnoDB和BDB支持事务,
而MyISAM不支持(事务)。如果你需要确定一张表是否支持事务的话,就确定它所
使用的引擎。如果你需要在一个事务中使用改表,但是对应的引擎不支持,你可以将
改表转换到一个支持事务的引擎上。
你可以使用information_schema,或使用show table status,或使用show create
table语句,来确定一张表当前使用的引擎。如下:
(1)select engine from information_schema.tables
where table_schema = 'mail' and table_name = 'test'
(2)show table status like 'test';
(3)show create table 'test';
使用alter table以及一个engine子句,来改变一张表所用的引擎。例如:
alter table mail engine = InnoDB;
注意:改变一个很大的表所有的存储引擎可能会耗费很长时间,并花费大量
cpu以及i/o资源。
...未完待续