MySQL查看和修改表的存储引擎

1 查看系统支持的存储引擎

   show engines;


2 查看表使用的存储引擎

 两种方法:
 a、show table status from db_name where name='table_name';
 b、show create table table_name;
 如果显示的格式不好看,可以用\g代替行尾分号
 
 有人说用第二种方法不准确(http://guaniuzhijia.blog.163.com/blog/static/16547206920114129953533/
 我试了下,关闭掉原先默认的Innodb引擎后根本无法执行show create table table_name指令,因为之前建的是Innodb表,关掉后默认用MyISAM引擎,导致Innodb表数据无法被正确读取。

 

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



使用的默认数据库存储引擎是InnoDB,而使用InnoDB存储引擎的时候,是不生成.MYD 和.MYI文件的

所以要生成.MYD 和.MYI文件,只需在建表的时候,显式地指定数据库存储引擎  





MySQL原生版包含myisam、innodb(innobase,innodb-plugin)等等引擎,如果我们在my.cnf指定了默认存储引擎,那么我们创建库和表时都会使用默认的引擎,但是默认引擎有时并不能满足我们的需求,这时候可能就需要我们的sql脚本中加入创建表时要用的引擎了,例如:


一般情况下,mysql会默认提供多种存储引擎,你可以通过下面的查看:

看你的mysql现在已提供什么存储引擎:


mysql> show engines;


看你的mysql当前默认的存储引擎:


mysql> show variables like '%storage_engine%';

你要看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎):


mysql> show create table 表名;


create table discuz.cdb_user engine = innodb;


这样就可以将表discuz.cdb_user的引擎变更为innodb引擎了。

也可以在创建表之后通过下面语句来变更:


alter table discuz.cdb_user engine =innodb;

如果要查看表的类型可以使用:


show table status form discuz;


表示查看数据库discuz里所有表的信息,其中Engine:对应的列就是表所用的存储引擎

如果要查看单个表的信息可以使用:


show create table discuz.cdb_user ;


在输出信息的最后可以看到engine=*****,此处就是表所用的存储引擎

修改存储引擎,可以用命令Alter table tableName engine =engineName


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值