博客是我工作的好帮手,遇到困难就来博客找资料
分类: 服务器与存储
2014-11-25 17:57:07
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