酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

作为dba,myisam和innodb的不同?

作为DBA,MyISAM和InnoDB的不同点主要体现在以下方面: 1. 存储结构:每个MyISAM在磁盘上存储了三个文件,包括表的定义文件(.frm)、数据文件(.MYD)和索引文件(.MYI)。而InnoDB在磁盘上存储了两个文件,包括表的定义文件(.frm)以及数据和索引文件(.ibd)。 2. 存储空间:MyISAM存储空间相对较小,而InnoDB需要更多的内存和存储空间。MyISAM支持三种存储模式,包括静态表、动态表、压缩表,而InnoDB不支持压缩。 3. 事务支持:MyISAM注重效率,每次查询具有原子性,执行速度比InnoDB快一些,但并不支持事务操作。InnoDB支持事务提交、事务回滚等高级数据库操作,安全性较高。 4. 锁的支持:MyISAM只支持表锁,需要锁定整个表格,效率相对较低。而InnoDB支持行锁,只需要锁定某一行,效率较高。 5. 外键支持:MyISAM不支持外键,而InnoDB支持外键。 6. 主键观念:MyISAM可以不定义主键,如果定义了主键,则会是主键索引。InnoDB则必须要有主键,就算没有定义,也会自动创建一个隐藏的6byte的int型的索引。 作为DBA,要根据实际应用场景选择合适的存储引擎。如果需要执行大量的查询,且注重效率,可以选择MyISAM;如果需要执行增、删、改等操作较多,且需要支持事务等高级数据库操作,可以选择InnoDB。 [2023-11-09 18:00:23 | AI写代码神器 | 350点数解答]

相关提问