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

posted @ 2017-12-11 11:36  H-大叔  阅读(373)  评论(0编辑  收藏  举报