1. 程式人生 > >MySQL查看和修改表的存儲引擎(轉載+加點東西)

MySQL查看和修改表的存儲引擎(轉載+加點東西)

ont color 存儲引擎 null stop net engines char ini

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

MySQL查看和修改表的存儲引擎(轉載+加點東西)