关于Mysql中MyISAM引擎和Innodb引擎的介绍

一、MyISAM

             MyISAM在存储引擎的数据库,每一个表都被存放为表明的物理文件。首先是任何存储引擎都不可缺少的存放表结构定义信息的.frm文件,还有.MYD和MYI文件,分别存放表的数据信息和表相关的索引数据。每张表有且仅有这样的三个文件,就算索引数据量很多也是这样的。

             MyISAM支持的三种类型的索引

             1、B-Tree索引

                   B-Tree顾名思义,就是所有节点按照B-Tree的数据结构来存储,但是所有的数据节点都在叶子节点。

             2、R-Tree

                  R-Tree索引存储方式和B-Tree有一些区别,主要设计用于存储空间和多维数据的索引,目前仅仅支持geometry类型的字段作索引。

       3、Full-text索引

                  Full-text索引就是常说的全文索引,它的存储结构为b-tree。主要是为了解决我们在用like查询的低效问题。

        数据模型

    MyISAM的主键索引和辅助索引的叶子节点都是数据文件的地址指针。

      锁

只支持表级锁,用户在操作myisam表时,select,update,delete,insert语句都会给表自动加锁,如果加锁以后的表满足insert并发的情况下,可以在表的尾部插入新的数据。

二、Innodb存储引擎

   数据文件(表数据和索引数据)

                  存放数据表中的数据和所有的索引数据,包括主键和其他普通索引。在Innodb中,存在了表空间的概念,Innodb的表空间分为两种形式。一种是共享空间,将所有表和索引数据存放在同一个表空间。另外一种则是单独表空间,就是将每个表的数据和索引存放在一个单独的.ibd文件中。共享表空间是必须存在的,因为他要存放一些Innodb的undo信息和其他一些元数据信息,共享表数据的文件可以是自动扩展或者设定为固定大小。

数据模型

Innodb的B+树主键索引的节点就是数据文件,辅助索引的叶子节点是主键的值;

支持事务和行级锁,是innodb的最大特色。行锁大幅度提高了多用户并发操作的新能。但是InnoDB的行锁,只是在WHERE的主键是有效的,非主键的WHERE都会锁全表的。

                

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值