Mylasm
物理文件结构
- (1)任何存储引擎都不可或缺的存放表结构定义的.frm(Form)文件
- (2)存放表数据的.MYD文件(My Data)
- (3)存放索引数据的.MYI文件(My Index)
支持的索引类型
- (1)BTree索引(最常见)
- (2)R-Tree索引
- (3)Full-Text索引
锁机制--表锁
InnoDB
物理文件结构
- (1)同MyISAM一样的是,InnoDB存储引擎也有.frm文件存储表结构定义
- (2)与MyISAM不同的是,InnoDB的表数据与索引数据是存储在一起的,但在这个文件中每张表是独自占有一块表空间还是共享所有表空间,是由用户决定的。如果独享表空间,每个表的表数据与索引数据都会存放在一个.ibd(innoDB data)文件中;如果是共享表空间,通过innodb_data_file_path指定后,每次增加数据文件后必须停机重启才能生效,很不方便。
- (3)InnoDB有支持事务及安全的日志文件,这个文件非常重要,InnoDB可以通过日志文件将数据库崩溃时已经完成但还没来得及将内存中已经修改但未完全写入磁盘的数据写入磁盘,也可以把已部分完成并写入磁盘的未完成事务回滚,保证数据一致性。如果错误删除日志文件会导致数据库崩溃且无法启动。
支持索引类型
锁机制 --行锁
区别
区别1
MyISAM引擎索引结构的叶子节点的数据域,存放的并不是实际的数据记录,而是数据记录的地址。索引文件与数据文件分离,这样的索引称为“非聚簇索引”。MyISAM的主索引与辅助索引区别并不大,只是主键索引不能有重复的关键字。
区别2
InnoDB引擎索引结构的叶子节点的数据域,存放的就是实际的数据记录(对于主索引,此处会存放表中所有的数据记录;对于辅助索引此处会引用主键,检索的时候通过主键到主键索引中找到对应数据行),或者说,InnoDB的数据文件本身就是主键索引文件,这样的索引被称为“聚簇索引”,一个表只能有一个聚簇索引。