首页 > 数据库 > MySQL > 正文

Mysql存储引擎详解

2024-07-24 12:52:58
字体:
来源:转载
供稿:网友

存储引擎的介绍

关系型数据库表是用来存储和组织信息的数据结构,可以将表理解为由行和列组成的表格。
由于表的类型不同,我们在实际开发过程中,就有可能需要各种各样的表,不同的表就意味着存储不同类型的数据,数据的处理上也会存在差异

对于Mysql来说,它提供了很多种类型的存储引擎

存储引擎说白了就是如何存储数据,如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
因为在关系型数据库中数据的存储是以表的形式存储 的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)

Mysql中的存储引擎

MyISAM

这种引擎是mysql最早提供的,这种引擎又可以分为静态MyISAM、动态MyISAM和压缩MyISAM三种

静态MyISAM:

            如果数据表中的各数据列的长度都是预先固定好的,服务器将自动选择这种表类型。
            因为数据表中的每一条记录所占用的空间都是一样的,所以这种表存取和更新的效率非常高。
            当数据受损时,恢复工作也比较容易做

动态MyISAM:

             如果数据表中出现varchar,xxxtext或xxxxBLOB字段时,服务器将自动选择这种表类型 。
             相对于静态MyISAM,这种表存储空间比较小,但由于每条记录的长度不一,所以多次修改数据后,数据表中的数据就可能离散的存储在内存中,进而导致执行效率下降.
             同时内存中也可能会出现很多碎片。
             因此这种类型的表要经常 用optimize table命令 或优化工具来进行碎片整理

压缩MyISAM:

              以上说的两种类型的表都可以用myisamchk工具压缩。
              这种类型的表进一步减少了占用的存储。
              但是这种表压缩之后不能再被修改。
              另外,因为是压缩数据,所以这种表在读取的时候要先执行解压缩

但是,不管是哪种MyISAM表,目前都不支持事务,行级锁和外键约束的功能

MyISAM表示独立于操作系统的,这说明可以轻松的将其从windows服务器转移 到linux服务器;

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表