zoukankan      html  css  js  c++  java
  • MySQL中的两种数据库引擎

    MySQL数据库有多个可以选择的数据库引擎,这里重点介绍MyISAM和InnoDB

    1、MyISAM

      (1)MyISAM是MySQL 5.5之前版本的默认数据库引擎,是在早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)的基础上改进得到的。

      (2)特点:

        优点:性能极佳,提供了全文索引、压缩、空间函数等功能

        缺点:不支持事务和行级锁,最大的问题在于数据库崩溃后无法恢复

    2、InnoDB

      (1)InnoDB是MySQL 5.5之后版本的默认数据库引擎,与ISAM和MyISAM相比,最大的优势和好处就是增加了数据库事务功能。

      (2)特点:

        优点:支持事务和行级锁,支持数据库崩溃后的恢复

        缺点:不支持全文索引

    3、两种数据库引擎的比较

      (1)支持的锁粒度:MyISAM支持表级锁,不支持行级锁。InnoDB支持行级锁,所以可以提供更高的并发性。

      (2)是否支持事务:MyISAM不支持事务,InnoDB支持事务操作

      (3)数据库崩溃后是否可恢复:MyISAM不可恢复,而InnoDB在数据库崩溃后可以恢复。

      (4)是否支持外键:MyISAM不支持外键,而InnoDB支持外键。

      (5)是否支持全文索引:MyISAM支持全文索引,所以性能较好;而InnoDB不支持全文索引。

    4、补充:行级锁和表级锁

      行级锁:

         每次操作锁住一行数据。开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高;

      表级锁: 

        每次操作锁住整张表。开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低;

       

  • 相关阅读:
    Redis的四种模式,单机、主从、哨兵、集群
    .NET 跨域问题
    C# 利用正则表达式获取富文本框中所有图片路劲
    ActiveMQ入门实例(.NET)
    ActiveMQ的使用以及应用场景
    关于消息队列的使用方法(RocketMQ)
    Redis系列 需要注意事项
    .NET:在线悲观锁、在线乐观锁、离线悲观锁、离线乐观锁代码示例
    C# 简单介绍Redis使用
    API Get跟Post 的区别?
  • 原文地址:https://www.cnblogs.com/xwwbb/p/11084699.html
Copyright © 2011-2022 走看看