Atitit.数据库存储引擎的法则及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

 

 

 

相关文章