Mysql引擎MyIsam與InnoDB的區別

2016年1月11日12:36:11 發表評論 4,020 ℃

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: