InnoDB与MyISAM区别

最大的区别应该是事务性。
InnoDB支持事务,而MyiSAM不支持事务,因此也没有事务的和隔离级别来保证并发产生的各种问题。

没有事务特性在并发的情况下MyiSAM怎么操作?
MyiSAM存储引擎支持表锁,写数据排他锁,其他线程无法获得锁。读数据时共享锁,允许线程插入数据。而InnoDB既支持表级锁,同时也支持行级锁。

存储空间占用情况
MyiSAM设计相对简单,数据以紧密格式存储,支持压缩表,空间数据索引。而InnoDB主索引是聚簇索引,索引和数据存储在一起,因此相对于MyiSAM来说数据占用空间会庞大不少。

查询速度
正是因为主索引是聚簇索引,查询数据时InnoDB无需读取磁盘,因此查询速度比MyiSAM块很多。
简单说就是:
事务性:InnoDB支持,MyiSAM不支持
并发性:InnoDB支持表级锁和行级锁,MyiSAM只支持表级锁。
外键:InnoDB支持外键。
备份:InnoDB支持热备份
崩溃恢复:MyiSAM崩溃恢复和InnoDB事务恢复是不一样的,前者的崩溃恢复会导致数据丢失,并且恢复的速度比较慢。
存储:MyiSAM支持压缩表,空间数据索引。

你可能感兴趣的:(mysql)