MySQL查看和修改表的存储引擎(转载+加点东西)
1 查看系统支持的存储引擎
show engines;
2 查看表使用的存储引擎
两种方法:
a、show table status from YOUR_DB_NAME where name='YOUR_TABLE_NAME';
b、show create table YOUR_TABLE_NAME;
如果显示的格式不好看,可以用\g代替行尾分号
有人说用第二种方法不准确,我试了下,关闭掉原先默认的Innodb引擎后根本无法执行show create table table_name指令,因为之前建的是Innodb表,关掉后默认用MyISAM引擎,导致Innodb表数据无法被正确读取。
正确的方法:
show table status from db_name where name='table_name';
+------+--------+---------+------------+------+----------------+-------------+-----------------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length |
+---------+------------+------+----------------+-------------+-----------------+--------------+
| t | InnoDB | 10 | Compact | 3 | 5461 | 16384 | 0 |
+------+--------+---------+------------+------+----------------+-------------+-----------------+
不正确的方法:
show create table table_name;
+-------+-----------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------------------------------------------+
| t | CREATE TABLE `t` (
`vc` varchar(1) DEFAULT NULL,
`c` char(1) DEFAULT NULL,
KEY `c` (`c`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+------------------------------------------------------------------------------------------+
如果mysqld没有启动对应的引擎如这里InnoDB,那么会使用默认的MYISAM引擎,所以不准确。
3 修改表引擎方法
alter table table_name engine=innodb;
4 关闭Innodb引擎方法
关闭mysql服务: net stop mysql
找到mysql安装目录下的my.ini文件:
找到default-storage-engine=INNODB 改为default-storage-engine=MYISAM
找到#skip-innodb 改为skip-innodb
启动mysql服务:net start mysql