SQL引擎及事务支持

查看当前表引擎

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';

原文地址:https://www.cnblogs.com/xuanjiange/p/11778606.html