简述MyISAM和InnoDB的区别

INNODB和MYISAM

在MySQL 5.1之前的版本中,默认的搜索引擎是MyISAM,从MySQL 5.5之后的版本中,默认的搜索引擎变更为InnoDB

MYISAM INNODB
事务支持 不支持 支持
数据行锁定 不支持(表锁定) 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间大小 较小 较大,约为2倍
  • MYISAM 节约空间,速度较快,记录了总条数,所示 count(1) 查询总条数快
  • INNODB 安全性高,支持事务处理,支持外键多表操作

物理空间位置

  • 所有的数据库文件都存在data目录下,本质还是文件存储,一个文件夹就是一个数据库

mysql引擎在物理文件上的区别

  • INNODB
    • INNODB在文件中只有一个 *.frm文件,以及上级目录下的ibdata1文件
  • MYISAM
    • *.frm - 表结构的定义文件
    • *.MYD - 数据文件(data)
    • *.MYI - 索引文件(index)

其他区别

  • 对于自增长的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中可以和其他字段一起建立联合索引。
  • 清空整个表时,InnoDB是一行一行的删除,效率非常慢。MyISAM则会重建表。
原文地址:https://www.cnblogs.com/liuzhidao/p/14805219.html