(转)Mysql存储引擎__笔记

Mysql存储引擎(表类型):

Mysql数据库:

通常意义上,数据库也就是数据的集合,具体到计算机上数据库可以使存储器上一些文件的集合或者一些内存

数据的内存数据的集合。

Mysql数据库是开放源代码的关系型数据库。目前,它可以提供的功能有:支持sql语言,子查询,存储过程,触发器,视图,索引,

事务,锁,外键约束和影响复制等。在后期,我们会详细讲解这些功能。

同oracle和sql server等大型数据库系统一样,mysql也是客户端/服务器系统并且是单进程多线程架构的数据库。

Mysql区别于其他数据库系统的一个重要特点是支持插入式存储引擎。

存储引擎:

说白了就是如何存储数据,如何为存储数据建立索引和如何更新,查询数据等技术的实现方法。因为在关系数据

的存储是以标的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。

在oracle和sql server等大型数据库系统一样,mysql也是客户/服务器系统并且是单进程多线程架构的数据库。

Mysql区别于其他数据库系统的一个重要特点是支持插入式存储引擎,所有存储管理机制都是一样的。而mysql

数据库提供了多种存储引擎。用户可以根据不同需求为数据表选择不同的存储引擎,用户也可以根据自己的需要

编写自己的存储引擎。

Mysql存储引擎:

1.Mylsam:这种引擎是mysql最早提供的。分为静态mylsam,动态mylsam和压缩mylsam三种:

静态mylsam:如果数据表中的各数据列的长度都是预先固定好的,服务器将自动选择这种表类型。因为数据表

中每一条记录所占用的空间都是一样的,所以这种表存取和更新的效率非常高。当数据受损时,恢复工作也比较

容易做。

动态mylsam:如果数据表中出现varchar,xxxtext或xxxblob字段时,服务器将自动选择这种表类型。相对于

静态mylsam,这种表存储空间较小,但由于每条记录的长度不一,所以多次修改数据后,数据表中的数据就可能

离散的存储在内存中,进而导致执行效率下降。同时,内存中也可能会出现很多碎片。因此,这种类型的表都可以

用optimize table命令或优化工具来进行碎片整理

压缩mylsam:以上说的两种类型的表都可以用mylamchk工具压缩。这种类型的表进一步减少了占用的存储,但

是这种表压缩之后不能再被修改。另外,因为是压缩数据,所以这种表在读取的时候要先进行解压缩。

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

2.mylsam merge引擎:这种类型是mylsam类型的一种变种。合并表是将几个相同的mylsam表合并为一个虚表。

常用于日志和数据仓库。

3.InnoDB:可以看错是对mylsam的进一步更新产品,它提供了事务,行级锁机制和外键约束功能。

4.Memory(heap):这种类型的数据表只存在于内存中。它使用散列索引,所以数据的存储速度非常快。因为是存在于

内存中,所以这种类型常应用于临时表中。

5.archive:这种类型只支持select和insert语句,而且不支持索引。常应用于日志记录和聚合分析方面。

当然mysql支持的表类型不知这几种。

Mysql中关于存储引擎的操作

1.查看数据库可以支持的存储引擎的操作

2.

时间: 2024-10-11 00:34:55

(转)Mysql存储引擎__笔记的相关文章

MySQL技术内幕-InnoDB存储引擎-读书笔记(二)

MySQL技术内幕-InnoDB存储引擎-读书笔记(二) 作为php开发,使用mysql总是少不了的 系列文章博客链接 http://itsong.net/articles/466.html 第三章 文件 mysql与innodb几个类型的文件 参数文件,配置路径.初始化参数.内存大小等 日志文件,包括错误日志,二进制日志,慢查询日志,查询日志 socket文件,用unix域套接字,unix domain socket来进行连接时需要的文件,这一般是本机连接,比通常tcp快 pid文件,进程id

MySQL技术内幕-InnoDB存储引擎-读书笔记(一)

MySQL技术内幕-InnoDB存储引擎-读书笔记(一) 作为php开发,使用mysql总是少不了的 博客链接 http://itsong.net/articles/466.html 第一章 MySQL体系结构和存储引擎 MySQL被设计为一个单进程多线程架构的数据库 ./mysql --help | grep my.cnf 可以查看mysql数据库实例启动时,它会在哪些位置查找配置文件. 配置文件中有一个datadir参数,指定了数据库所在的路径.默认为/usr/local/mysql/dat

MySql学习 - MySql存储引擎笔记

MySql存储引擎 MySql数据库有很多种存储引擎,不同的引擎特点不同,有各自的优点.最近在看MySQL技术内幕,刚好做下笔记. InnoDB存储引擎 这个是自从MySQL 5.5.8版本后的默认存储引擎,也是我平时使用的搜索引擎.支持事务操作,主要面向联机事务处理的应用,特点是行锁设计,支持外键,也支持类似Oracle的非锁定读这种默认读取操作不会产生锁. 通过使用版本控制来获得高并发并且实现了SQL标准的四种隔离级别,默认是REPEATABLE级别(可以防止脏读和非重复读).同时使用一种n

InnoDb 体系架构和特性 (Innodb存储引擎读书笔记)

后台线程 Master Thread 核心后台线程,主要负责将缓冲池的数据异步刷新到磁盘.例如脏页的刷新,插入缓冲的合并,undo 页的回收等. 每秒一次的操作: 日志缓冲刷新到磁盘,即使该事务还没有提交.该操作总是会发生,这个就是为了再大的事务,提交时间都很短. 当IO压力很小时(1s内发生的IO次数小于5% innodb_io_capacity)合并5% innodb_io_capacity 的插入缓冲. 当脏页比例大于 innodb_max_dirty_pages_cnt, 刷新 inno

MySQL存储引擎InnoDB与Myisam

InnoDB与Myisam的六大区别 InnoDB与Myisam的六大区别 MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名字开始,扩展名指出文件类型..frm文件存储表定义.数据文件的扩 展名为.MYD (MYData).索引文件的扩 展名是.MYI (MYIndex). 基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的 大小只受限于操作系统文件的大小,一般为 2GB 事务处理上方面: MyISAM类型的

mysql存储引擎

mysql的物理文件组成包括错误日志,查询日志,慢查询日志,事务日志,二进制日志. 日志文件中记录mysql数据库运行期间发生的变化,记录mysql数据库的客户端连接状况,sql语句的执行情况和错误信息. mysql的逻辑结构可以看成是二层架构,第一层叫做SQL layes,数据库系统处理底层数据库之前的所有工作都在这一层完成,包括权限判断,sql解析,执行计划优化,query cache的处理等.第二层就是存储引擎层,叫做storage engine layes,也是底层数据存取操作实现部分,

mysql 存储引擎 myisam innodb 区别

虽然MySQL里的存储引擎不只是MyISAM与InnoDB这两个,但常用的就是它俩了.可能有站长并未注意过MySQL的存储引擎,其实存储引擎也是数据库设计里的一大重要点,那么博客系统应该使用哪种存储引擎呢?下面我们分别来看两种存储引擎的区别. MySQL存储引擎MyISAM与InnoDB的区别 一.InnoDB支持事务,MyISAM不支持,这一点是非常之重要.事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyISAM就不可以了. 二.MyISAM适合查询以及插入为主的

五花八门的MySQL存储引擎,哪一盘是你的菜?

一.MYSQL中存储引擎分类及应用场合 MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(BerkeleyDB).EXAMPLE.FEDERATED.ARCHIVE.CSV.BLACKHOLE. MySQL支持数个存储引擎作为对不同表的类型的处理器.MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎: 1.MyISAM管理非事务表 它提供高速存储和检索,以及全文搜索能力.MyISAM在所有MySQL配置里被支持,它是默认的存储引擎,除非你配置MySQL默认

MySQL存储引擎比较

MySQL常用的存储引擎为MyISAM.InnoDB.MEMORY.MERGE,其中InnoDB提供事务安全表,其他存储引擎都是非事务安全表. MyISAM是MySQL的默认存储引擎.MyISAM不支持事务.也不支持外键,但其访问速度快,对事务完整性没有要求. InnoDB存储引擎提供了具有提交.回滚和崩溃恢复能力的事务安全.但是比起MyISAM存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引. MEMORY存储引擎使用存在内存中的内容来创建表.每个MEMORY表