MySQL存储引擎的二选一:InnoDB和MyISAM

最近研究zblog仿站,所以在本地安装了一下zblog,过程中有一项表存储引擎如何选择,其中只有两个选项,InnoDB和MyISAM不知道怎么选择了,顺手百度了一下,简单了解就够我用了也没必要深究,又不去面试。MySQL支持的存储引擎有MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV、BALCKHOLE、FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表。我这种懒人,思维比较单纯不喜欢较真儿,zblog安装给我两个选项,说明这哥俩都可以随便选那种并且最常用对吧,自己查如上面最少支持十一种存储方式,我滴个乖乖知识量太大了,没时间浪费在上面毕竟也用不到。主要研究下InnoDB和MyISAM区别、使用场景什么的。InnoDB存储引擎InnoDB是目前MYSQL的默认存储引擎,是事务型数据库的首选引擎,是目前最重要、使用最广泛的存储引擎。主要特性有:提供了事务,回滚以及系统崩溃修复能力和多版本迸发控制的事务的安全。支持自增长列(auto_increment)。支持外键(foreign key)。支持MVCC的行级锁。索引使用的是B+Tree。优点:提供了良好的事务处理、崩溃修复能力和并发控制。缺点:读写效率较差,占用的数据空间相对较大。场景:既有读写也挺频繁,请使用InnoDB。不知道如何选择时,也可以选择InnoDB,用以应对未来可能存在的复杂业务。MyISAM存储引擎MyISAM 这种存储引擎不支持事务,不支持行级锁,只支持并发插入的表锁,主要用于高负载的select。优点:占用空间小,处理速度快。缺点:是不支持事务的完整性和并发性。场景:表中绝大多数都只是读查询(一般R/W > 100:1且update相对较少),可以考虑 MyISAM另外,一个数据库可以存在多种存储引擎的表,一般默认的都是InnoDB存储引擎,所以不知道怎么选择的话,闭眼选InnoDB肯定错不了 查看默认存储引擎:SHOW VARIABLES LIKE ‘default_storage_engine%';试了一下,默认是InnoDB


本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://www.xiaosb.com/beian/53391/