查看当前表引擎
SHOW CREATE TABLE table_name
MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能。
更改MyISAM类型表为InnoDB类型的表
ALTER TABLE table_name ENGINE=InnoDB;
ALTER TABLE table_name ENGINE=MyISAM;
一次修改多个表
#修改为InnoDB
SELECT CONCAT( 'ALTER TABLE ', TABLE_NAME, ' ENGINE=InnoDB;' )
FROM information_schema.tables
WHERE table_schema = 'DBNAME'
LIMIT 0 , 10000; #修改为MyISAM
SELECT CONCAT( 'ALTER TABLE ', TABLE_NAME, ' ENGINE=MyISAM;' )
FROM information_schema.tables
WHERE table_schema = 'DBNAME'
LIMIT 0 , 10000;
使用说明:
1. 将以上SQL语句中的 DBNAME 替换成需要修改的数据库名称。
2. 执行SQL,这个时候还没有修改,只是给了一个查询结果。
3. 将查询结果复制,去掉前后的引号,然后执行。
批量修改字符集
ALTER DATABASE DBNAME DEFAULT CHARACTER SET='utf8';
数据库表字段乱码
mysql_query('set names utf8');
查询当前实例中储存引擎为MyISAM的表
select table_catalog
,table_schema
,table_name
,engine
from information_schema.tables
where engine='MyISAM';