zoukankan      html  css  js  c++  java
  • MySQL两种引擎的比较

    MyISAM,InnoDB主要区别:

      1.MyISAM是非事物安全的,InnoDB是事物安全的。

        事物安全的特点为更安全,遇到问题会自动恢复或从备份加事物日志回复,如果更新失败,你的所有改变都变回原来。

        非事物安全的优点为更快,所需的磁盘空间更小,执行更新时需要的内存更小,但是所有发生的改变都是永久的。

      2.MyISAM锁的粒度是表级的,InnoDB支持行级锁以及表级,默认情况下是采用行级锁。

        数据库引擎具有多粒度锁定,允许一个事务锁定不同类型的资源。 为了尽量减少锁定的开销,数据库引擎自动将资源锁定在适合任务的级别。 锁定在较小的粒度(例如行)可以提高并发度,但开销较高,因为如果锁定了许多行,则需要持有更多的锁。 锁定在较大的粒度(例如表)会降低了并发度,因为锁定整个表限制了其他事务对表中任意部分的访问。 但其开销较低,因为需要维护的锁较少。

      3.MyISAM支持全文类型索引,InnoDB不支持(之前

        mysql索引有四种类型:主键索引、唯一索引、普通索引和全文索引。通过给字段添加索引可以提高数据的读取速度,提高项目的并发能力和抗压能力。索引优化是mysql中的一种优化方式。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。

        主键索引: 主键是一种唯一性索引,但它必须指定为PRIMARY KEY,每个表只能有一个主键。

        唯一索引: 索引列的所有值都只能出现一次,即必须唯一,值可以为空。

        普通索引 : 基本的索引类型,值可以为空,没有唯一性的限制。 

        全文索引: 全文索引的索引类型为FULLTEXT。全文索引可以在varchar、char、text类型的列上创建。可以通过ALTER TABLE或CREATE INDEX命令创建。对于大规模的数据集,通过ALTER TABLE(或者CREATE INDEX)命令创建全文索引要比把记录插入带有全文索引的空表更快。MyISAM支持全文索引,InnoDB在mysql5.6之后支持了全文索引。

      4.InnoDB支持外键,MyISAM不支持。

    应用场景(简单概括):

      MyISAM管理非事物表,提供高速存储和检索以及全文搜索的能力,如果在应用中执行大量的select操作,应选用MyISAM。

      InnoDB用于事物处理,具有ACID(原子性,一致性,隔离性,持久性)事物支持等特性,如果在应用中大量使用insert和update操作,应选用InnoDB。

      当然具体的选用还是要看具体的项目需求来定,不能简单的只看这几个方面。

  • 相关阅读:
    iOS开篇——UI之UILabel
    关于Block初识与自己的认识
    浅拷贝与深拷贝
    关于MacBook Pro选购
    准备考试 暂时停更
    Objective-C代理
    Objective-C协议初识
    Objective-C内存管理
    通讯录习题
    软件工程第二次作业 词频统计
  • 原文地址:https://www.cnblogs.com/zlnevsto/p/8700903.html
Copyright © 2011-2022 走看看