MySQLAtitit.数据库存储引擎的原理与attilax 总结

 

 

Atitit.数据库存储引擎的法则和attilax 总结

 

1. 囤积引擎是呀1

2. 别数据库系统(包括大部分商选择)仅支持一栽类型的数额存储2

3.
表的仓储有三独文本:结构+数据+索引2

4. 页暨字段2

5. 多少存取的选择:行存储还是排存储?3

6. 普遍的积存引擎3

6.1.
简易类型MyISAM、3

6.2. 苛类型,支持工作与外键 MySQL存储引擎【InnoDB、3

6.3.
InnoDB多少存储结构3

6.4. Memory】(Heap)
存储引擎5

6.5.
NDBCluster分布式存储引擎6

7. other6

7.1. CSV: 逻辑上由于逗号分割数据的仓储引擎。它见面当数码库子目录里吧每个数据表创建一个.CSV文件。这是相同种普通文书文件,每个数据行占用一个文本行。CSV存储引擎不支持索引。6

7.2. Merge :将定数量的MyISAM表联合而变成一个总体,在超大规模数据存储时特别有因此7

7.3. Archive :非常适合存储大量之独立的,作为历史记录的数目。因为它们不常吃读取。Archive拥有便捷的插速度,但其针对性查询的支撑相对比差7

7.4. Federated存储引擎7

8. 参考7

 

 

1. 储存引擎是啊

譬如,如果你当研讨大量底即数据,你也许需要动用内存存储引擎。内存存储引擎能够当内存中存储所有的报表数据。又或者,你可能需要一个支撑事务处理的数据库(以确保事务处理不成事时数的回退能力)。

这些不同之技能同配套的相关功能在MySQL中叫称呼存储引擎(也称作表类型)。MySQL默认配置了广大不比之囤引擎,可以先安装或当MySQL服务器受到启用。你可选取适用于服务器、数据库暨表格的存储引擎,以便在挑怎么存储你的消息、如何寻找这些信和若要你的数整合什么性质与成效的时刻吧卿提供极致充分之灵活性。

慎选哪存储和查找你的数的这种灵活性是MySQL为什么这样给欢迎之重大由。其它数据库系统(包括大部分生意选择)仅支持一种植档次的多寡存储。遗憾的凡,其它种类的数据库解决方案以的“一个尺码满足整需”的方意味着你要么就牺牲局部性能,要么你不怕因故几单小时甚至几天之日详细调整你的数据库。使用MySQL,我们只有得修改我们用的贮存引擎就可以了[1] 

 

 
存储引擎说白了便是何许存储数据、如何呢存储的数目建立目录和怎么创新、查询数据等技巧之兑现方式。因为当关系数据库中多少的蕴藏是以表的款型储存的,所以存储引擎也得以称作表类型(即存储和操作此表的型)。
   

2. 其它数据库系统(包括大部分商贸选择)仅支持一栽档次的多寡存储

 在Oracle 和SQL Server等数据库中才发生同一种存储引擎,所有数据存储管理机制都是平等的。而MySql数据库提供了又仓储引擎。用户可依据不同的要求为数据表选择不同之蕴藏引擎,用户为堪依据自己的需编制好之贮存引擎。

此外,Mysql的囤引擎接口定义良好。有趣味的开发者通过翻阅文档编写好之仓储引擎

 

3. 表明的存储有三个公文:结构+数据+索引

.frm文件,存储表的结构

.myd文件,存储表的数

.myi文件,存储表的目录

 

4. 页与字段

SQL Server
中的中坚数据存储单元是页

数页包括数据行中除text、ntext和
image以外的拥有数据类型,text、ntext和 image是保存在独的页中之
。数据行是接二连三地位于页上,紧接在页头之后。一个行偏移的申开给页的终极。

行偏移表包含页上诸一行的一个条文。每一个条文记录了该行的第一单字节距离页的始发之去。行偏移表中的条文的逐条及页上行的逐条是相反的。在SQL
Server 7.0挨,行未克跨越页,

 

5. 数量存取的挑:行存储还是排存储?

事实上列存储并无是呀新定义,早在1985年SIGMOD会议达成就出章”
A decomposition storage model”对DSM(decomposition storage
model)做了于详细的介绍,而Sybase更在2004年左右即便生产了排存储的Sybase
IQ数据库系统(见200年VLDB文章” Sybase iq multiplex – designed for
analytics”),主要用于在线分析、数据挖掘等查询密集型应用。

列存储,缩写为DSM,相对于NSM(N-ary
storage
model),其主要区别在,DSM将有着记录面临平等字段的多寡聚合存储,而NSM将各条记下之有着字段的数量聚合存储,如下图所示:

列存储有什么亮点?

即便我手上比浅的掌握,列存储的重要优点有点儿只:

1)
每个字段的数聚集存储,在查询才需要少数几个字段的早晚,能大大减少读取的数据量,据C-Store,
MonetDB的撰稿人考察和剖析,查询密集型应用的表征有即是询问一般只是关注少数几单字段,而相互呼应的,NSM中老是必读取整修记下;

2)
既然是一个字段的数额聚集存储,那就再次易啊这种集存储设计更好之回落/解压算法。

排存储适合用当啊场合?

OLAP,数据仓库,数据挖掘等查询密集型应用。当然,列存储数据库并无是说了无克进行创新操作,其实它们的翻新操作性能并无是怪不同,一般为足够用,但是另一方面不使自己之询问性能,另外一面为不如Oracle这种特别做OLTP的数据库,所以一般就非领取这。

排存储不入用当啊场合?

相对来说,不称用当OLTP,或者更新操作,尤其是插、删除操作频繁之场合。

啊底上世纪80年代就涌出的定义现在以还炒起来了啊?

2005年VLDB有首稿子(“One
Size Fits All – An Idea Whose Time Has Come and Gone”),就是挺老牛M.
Stonebraker写的,明确指出,时代变了,指望一个数据库产品就统一天下的日子已经一去不复还了。于是,这个老牛在2005年左右做了C-Store,一个列存储的数据库原型系统,在VLDB,
SIGMOD等一流国际会达成沃了几乎桶水后,

5.1. 4发展史

  有篇稿子(“One Size Fits All – An
Idea Whose Time Has Come and Gone”),就是特别老牛M.
Stonebraker写的,明确指出,时代变了,指望一个数据库产品就统一天下的生活已经一去不复还了。于是,这个老牛在2005年左右开了C-Store,一个列存储的数据库原型系统,在VLDB,
SIGMOD等一等国际会达成沃了几桶水后,拉了同样齐人下开了单商家给Vertica,将那个商业化,专注于数据仓库、在线分析等市场,最近相似还不行有钱之;顺便说一下,为了贯彻上面的思索,这个老牛在同时期还要开了H-Store,一个主内存数据库原型系统,没怎么灌水就同时照顾了相同扶持人起了只合作社为VoltDB,将其商业化,专注于同台事务处理。

M.
Stonebraker在高达世纪70年间带头开展关系数据库管理体系的实现工作,做下了Ingres,其中灌水无数,从这原型系统基础及发了累累经贸数据库软件,包括
Sybase、Microsoft SQL Server、NonStop SQL、Informix
等,而所谓的卓绝先进的开源数据库系统PostgreSQL也是Ingres的一个继分支。

 

6. 普遍的囤积引擎

6.1. 简类型MyISAM、

3.4:MYISAM存储引擎的得失:

优点:占用空间稍加,处理速度快(相对InnoDB来说)

确定:不支持工作的完整性和并发性

表级锁定:其锁定机制是表级索引,这虽好为锁定的贯彻资金非常粗但也还要大大降低了其出现性能

MyISAM的Count只发生于全表扫描的时特意迅速,带有另外规格的count都需开展实际的数额访问

 

6.2. 复杂类型,支持事务及外键 MySQL存储引擎【InnoDB、

6.3. InnoDB数据存储结构

1.MySQL以拥有数据都逻辑地存于ib_data1文件中,我们称之为表空间。当然,你为堪一个表对应一个大体文件,将innodb_file_per_table设置成ON即可。
2.表空间又扛为成段,有数据段(leaf
node segment),索引段(none-leaf node segment),回滚段(rollback
segment)。表空间由这些段和页组成,比如32页碎片页。
3.各段以扛为成区,InnoDB每次最好多可申请4独区,即4M的蕴藏空间。
4.每个区而扛为成页,一个私分分为64页,每个页的高低是16KB,大小非能够转移,这吗一定了一个区的轻重缓急为4M。页是MySQL操作的极端小逻辑单位。
5.InnoDB凡给向行的,这即代表数据行存放在页中,每页最多能记录7992行数据。
6.MySQL定义了不同作用的页类型,比如B-Tree
Page, Undo Log Page等,我们太关怀的是B-Tree
Page(数据页)。实际数目就是因这样的页逻辑实体是于表空间,总是坐B+树结构索引组织的。
7.移句话虽说,实际数目一行一行地存于B-Tree页中,这些页都放在数据段leaf
node segment中。B-Tree Page是B+树的叶子节点。
8.一个B-Tree树,由7有的成

8-1.File
Header,这里记录了页在表空间的片信,比如达平等页,下一致页,属于哪个表空间等等

8-2.Page
Header,
这里记录了页本身的组成部分仓储信息。比如第一个记录的职务,记录数,最后插入记录行的职位,该页的索引ID等等

8-3.Infimum
& Supermum Records,
MySQL虚拟的第二单执行记录,用来界定记录之分界。分别代表此页中另外pk值还多少的值与其余pk值还百般之价值。

8-4.user
records, 实际存储的执行记录。

8-5.free
space,空闲空间,同样是链表结构。当一个数量记录删除后,就会加盟到空闲链表中

8-6.page
directory,
存放了记录的对立位置。注:聚集索引自找不顶现实的一致久记下。而是经
聚集索引找到该记录所于的页,然后又经过Page
Directory进行次私分查找找到具体数目。

8-7.File
Trailer, MySQL InnoDB利用她来担保页完整地勾画副磁盘。

上图被要发生以下几种存储文件:

1)表结构定义文件(.frm):MySQL里每个表和每个视图都发一个遥相呼应之.frm文件用于记录表和视图的定义。注意:该公文与贮引擎无关,属于MySQL数据库本身的文本。

2)默认表空间文件(ibdata)

3)单独表空间文件(.ibd)

 

 

6.4. Memory】(Heap) 存储引擎

 

 

4.1:Memory存储引擎的公文存储形式

Memory存储引擎也会见再磁盘上形成一个
.frm的表明结构文件,只是说明的数据件并无因文件之款型存放于磁盘上。鉴于其数量存放在内存里,因此,访问速度更快。但得
要考虑的是:内存上数据的持久性。

4.2:Memory存储引擎的索引类型

默认的是哈希索引,也支持BTree索引

 

6.5. NDBCluster分布式存储引擎

1.特性

  分布式:分布式存储引擎,可以由多个NDBCluster存储引擎组成集群分别存放整体数量的同一片

  支持工作:和Innodb一样,支持工作

  可与mysqld不在同大主机:可以同mysqld分开是被独立的主机及,然后经过网络以及mysqld通信交互

  内存需求量巨大:新版本索引以及被索引的多寡必须存放在内存中,老版有数据和目录必须存在和内存中

Cluster/NDB
:高冗余的囤引擎,用几近令数码机器并提供服务为加强总体性及安全性。适合数据量大,安全及性质要求强之运

 

7. other

 

7.1. CSV: 逻辑上由于逗号分割数据的积存引擎。它会以数据库子目录里吗每个数据表创建一个.CSV文件。这是均等种普通文书文件,每个数据行占用一个文本行。CSV存储引擎不支持索引。

 

7.2. Merge :将一定数额之MyISAM表联合而成一个一体化,在超大规模数据存储时特别有因此

7.3. Archive :非常适合存储大量之单身的,作为历史记录的数据。因为它们不经常被读取。Archive拥有便捷之插入速度,但彼针对性查询的支持相对较差

刚刚使该名目所示,Archive非常适合存储归档数据,如日志信息。它才支持INSERT和SELECT操作,其设计的要紧目的是提供快捷的插入和减少功能。

7.4. Federated存储引擎

Federated存储引擎不存数量,它起码指于同一大远程MySQL数据库服务器上的说明,非常相近于Oracle的晶莹网关

 

 

8. 参考

MySQL存储引擎【InnoDB、MyISAM、Memory】

  • mysql数据库栏目 – 红黑联盟

MySQ 存储引擎选择 – ggjucheng – 博客园.html

储存引擎_百度百科.html

( imp )mysql 数据结构详解-singerinsky-ChinaUnix博客.html

(imp)MySQL数据库的体系架构 – dongdong_java的专栏 – 博客频道 – CSDN.NET.html

SQLServer数据库被储存引擎深入探讨-mssql-电脑编程网.html

(imp )大数额存取的选料:行存储还是排存储?_存储_比特网.html

 

作者:: 绰号:老哇的爪子claw of
Eagle 偶像破坏者Iconoclast image-smasher

捕鸟王”Bird Catcher 王中之王King of Kings 虔诚者Pious 宗教信仰捍卫者 Defender of the Faith. 卡拉卡拉红斗篷 Caracalla red
cloak

简称:: Emir
Attilax Akbar 埃米尔 阿提拉克斯 阿克巴

全名::Emir
Attilax Akbar bin
Mahmud bin  attila
bin Solomon Al Rapanui 

埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门  阿尔 拉帕努伊   

常用名:艾提拉(艾龙),   EMAIL:1466519819@qq.com

转载请注明来源:attilax的专辑   http://www.cnblogs.com/attilax/

–Atiend

 

 

 

网站地图xml地图