最近研究zblog仿站,所以在本地安装了一下zblog,过程中有一项表存储引擎如何选择,其中只有两个选项,InnoDB和MyISAM不知道怎么选择了,顺手百度了一下,简单了解就够我用了也没必要深究,又不去面试。

zblog

 

MySQL支持的存储引擎有MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV、BALCKHOLE、FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表。

我这种懒人,思维比较单纯不喜欢较真儿,zblog安装给我两个选项,说明这哥俩都可以随便选那种并且最常用对吧,自己查如上面最少支持十一种存储方式,我滴个乖乖知识量太大了,没时间浪费在上面毕竟也用不到。主要研究下InnoDB和MyISAM区别、使用场景什么的。

InnoDB存储引擎

InnoDB是目前MYSQL的默认存储引擎,是事务型数据库的首选引擎,是目前最重要、使用最广泛的存储引擎。主要特性有:

  1. 提供了事务,回滚以及系统崩溃修复能力和多版本迸发控制的事务的安全。
  2. 支持自增长列(auto_increment)。
  3. 支持外键(foreign key)。
  4. 支持MVCC的行级锁。
  5. 索引使用的是B+Tree。

优点:提供了良好的事务处理、崩溃修复能力和并发控制。

缺点:读写效率较差,占用的数据空间相对较大。

场景:既有读写也挺频繁,请使用InnoDB。不知道如何选择时,也可以选择InnoDB,用以应对未来可能存在的复杂业务。

MyISAM存储引擎

MyISAM 这种存储引擎不支持事务,不支持行级锁,只支持并发插入的表锁,主要用于高负载的select。

优点:占用空间小,处理速度快。

缺点:是不支持事务的完整性和并发性。

场景:表中绝大多数都只是读查询(一般R/W > 100:1且update相对较少),可以考虑 MyISAM


另外,一个数据库可以存在多种存储引擎的表,一般默认的都是InnoDB存储引擎,所以不知道怎么选择的话,闭眼选InnoDB肯定错不了 :@(赞一个)

查看默认存储引擎:

SHOW VARIABLES LIKE 'default_storage_engine%';

InnoDB

试了一下,默认是InnoDB :@(击掌)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。