mysql innodb的区别?
MySQL存储引擎MyISAM与InnoDB的区别
一、InnoDB支持事务,MyISAM不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyISAM就不可以了。
二、MyISAM适合查询以及插入为主的应用,InnoDB适合频繁修改以及设计到安全性就高的应用。
三、InnoDB支持外键,MyISAM不支持。
四、MyISAM是默认引擎,InnoDB需要指定。
五、InnoDB不支持FULLTEXT类型的索引。
六、InnoDB中不保存表的行数,MyISAM只要简单的读出保存好的行数即可。
七、对于自增长的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中可以和其他字段一起建立联合索引。
八、清空整个表时,InnoDB是一行一行的删除
九、InnoDB支持行锁。
浅谈MySQL存储引擎选择InnoDB与MyISAM的优缺点分析?
MyISAM引擎设计简单,数据以紧密格式存储,所以某些读取场景下性能很好。
但是MyISAM最典型的还是表锁问题,这样会导致长期处于"Locked"状态。而且数据恢复时间长,无事务等问题或短板。
虽然5.1之前MyISAM的读比Innodb快很多,但是在5.1之后,默认引擎已经变为Innodb。
Innodb读写有很大的提高,采用MVCC来支持高并发,针对行加锁,是使用最广泛的存储引擎。
官方建议尽量将MyISAM都换为Innodb。
Mysql中MyISAM和InnoDB的区别有哪些?
InnoDB特性
1.支持事务,实现事务的四种隔离级别,CAID特性。
2.是行级锁,并发性能高。
3.支持外键
4.可利用日志进行数据回滚。
5.是聚集索引(聚集索引是指数据库表行中数据的物理顺序与键值的逻辑(索引)顺序相同),必须有主键,
MyISAM特性
1.不支持事务
2.写操作为表级别
3.不支持外键
4.非聚集索引,不一定需要主键

