Mysql引擎MyIsam与InnoDB的区别

2016年1月11日12:36:11 发表评论 2,856 ℃

mysql采用MYISAM引擎的数据表A,会有如下文件:

A.frm【存储表定义,表字段等等】

A.MYD【存储数据】

A.MYI【存储索引】

mysql采用InnoDB引擎的数据表B,会有如下文件:

B.frm文件

B.ibd 或 .ibdata

idb或.ibdata这两种文件都是存放innodb数据的文件

独享表空间存储方式使用.ibd文件,并且每个表一个ibd文件

共享表空间存储方式使用.ibdata文件,所有表共同使用一个ibdata文件(所有表是指这个服务器上所有库的所有使用INNODB引擎的表)

从这个2中引擎的文件方式中就可以看出,如果用户数据库出现问题,我们采用直接拷贝表文件的方式去操作数据库,前提必须是这些表都采用MYISAM引擎。

查看MySQL是否支持InnoDB引擎以及不支持的解决办法

通过命令行进入mysql或者是通过phpmyadmin进行操作,执行如下命令:

SHOW variables like "have_%"

显示结果中会有如下3种可能的结果:

have_innodb YES 已经开启InnoDB引擎

have_innodb NO  未安装InnoDB引擎

have_innodb DISABLED  未启用InnoDB引擎

针对第二种未安装,只需要安装即可;针对第三种未启用,则打开mysql配置文件,找到 skip-innodb项,将其改成#skip-innodb,之后重启mysql服务即可。

【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: