innodb和myisam

学习innodb和myisam两个数据表引擎的不同。

首先innodb采用b+tree数据结构myisam采用b-tree数据结构(不太理解)没关系。
我所学习到的东西是,myisam\innodb都是采用文件索引,但是不同之处在于myisam索引与数据分离,innodb是和数据在相同文件。先说myisam索引查询时会进行i/o操作所以索引建立太多会影响数据库效率,索引文件中存放是磁盘中的地址。而innodb文件中存放的是索引和数据,主索引就是数据表的主键,所以innodb必须有主键,而数据表的所有辅助索引都引用主键,所以辅助索引搜索时要搜索两次索引,首先检索辅助索引获得主键,然后用主键到主索引中检索获得记录。所以主键索引必须是唯一和简单的递增字段。

通过上面的介绍可得知:myisam只适用于小数据表,大的数据会引起多次的i/o读取索引文件导致效率极低。而innodb则可以存储大数据,因为索引在数据文件中。

一些简单的区别:

myisam           innodb

不支持外键       支持

不支持事物       支持

支持全文索引    不支持

表锁定             行锁定

你可能感兴趣的:(innodb和myisam)