10 分钟梳理关系数据库基础知识(二):存储结构

每天10分钟,用去食堂吃饭的时间解决一个知识点。

存储介质

数据库系统涉及的存储介质中,有代表性的有以下几种:

  • 高速缓存(cache) cache最快,也最贵。我们在使用的过程中一般接触不到,但数据库的实现者在设计数据结构和算法时还是会考虑cache的影响的。嗯,写到这里,不由地端起茶杯,抿了一口水。
  • 主存(main memory)
  • 闪存(flash memory) 现在主要是用在SSD上。提升随机读写的性能。
  • 磁盘(disk) 我们一般进行的讨论中,都是默认数据放在磁盘上。而磁盘与主存之间,是以块(block)为单位交换数据的。优化查询,就是要优化块数,即磁盘IO的次数。而进一步细化的话,磁盘的访问时间由三部分组成:寻道时间,旋转时间,传输时间。

磁盘可以通过SATA,SCSI或SAS口连接到计算机,也可以通过网络与磁盘控制器相连,即我们常提到的SAN和NAS。

RAID

RAID的指导思想就是两条:通过冗余提高可靠性,通过并行提高性能。说到这再岔开一句,其实我们在计算机很多领域都会发现,可靠性都是靠冗余来保证的,而冗余又会带来一致性等问题,针对新的问题,不同的思路会得到各自的方案,我觉得抓住这条主线会有助于我们的学习。

回到正题,我直接画一张RAID不同级别的图吧:

也有厂商使用RAID 1+0或者RAID 10这样的说法,和这里不是同一个术语版本,大家不要混淆就可以了。

缓冲区

我们一直在说,数据库要尽量减少磁盘和主存间传输的block的数目。这也是学习数据库的一条主线。那么,很自然的一个想法就是,我保存尽量多的block在主存中,这样访问时再去磁盘上交换的几率不就降低了嘛。而主存中用于存储磁盘块的拷贝的地方,就叫做缓冲区(buffer)。但是主存比磁盘小得多,所以buffer中内容如何管理,是数据库中很重要也很有的内容。

比如buffer快满时如何替换,经典的算法我们很容易就会想到LRU,但InnoDB就在LRU的基础上又加了一个因子,避免全表扫描对替换buffer的影响。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏酷玩时刻

典型数据库架构设计与实践 | 架构师之路

本文,将介绍数据库架构设计中的一些基本概念,常见问题以及对应解决方案,为了便于读者理解,将以“用户中心”数据库为例,讲解数据库架构设计的常见玩法。

832
来自专栏IT派

【机器学习神器之二】深度学习新手平台Floyd

想必每个学习深度学习的小伙伴,特别是新手小白,总要为找到以及调试一个适合的gpu云主机煞费苦心。不知道大家有没有经历过,用自己的显卡计算时,每出一个结果,就能听...

3976
来自专栏北京马哥教育

【精粹】基础 RAID 介绍

简介 RAID是一个我们经常能见到的名词。但却因为很少能在实际环境中体验,所以很难对其原理 能有很清楚的认识和掌握。本文将对RAID技术进行介绍和总结,以期能尽...

26510
来自专栏鹅厂网事

可视化网络路径探测HashTrace

引子 长期以来,探究网络质量和探索网络路径是广大网络工作者监控网络的必备工作,ping用于探究网络质量和traceroute用于探索路径。对于探测结果似...

3018
来自专栏北京马哥教育

4KB 扇区磁盘上的 Linux:实际建议

为何更改为 4096 字节扇区? 如果您熟悉磁盘结构,就知道磁盘是被分解成扇区 的,大小通常是 512 字节;所有读写操作均在成倍大小的扇区中进行。仔细查看,就...

3038
来自专栏跨界架构师

分布式系统关注点——仅需这一篇,吃透「负载均衡」妥妥的

  上一篇《分布式系统关注点——初识「高可用」》我们对「高可用」有了一个初步认识,其中认为「负载均衡」是「高可用」的核心工作。那么,本篇将通过图文并茂的方式,来...

772
来自专栏涂小刚的专栏

Spark Cache 性能测试

此测试的目的在于评判各种Cache IO的性能,测试中采用Spark自带的Kmeans算法作为测试基准(Spark版本为2.1),该算法Shuffle数据量较小...

9730
来自专栏吉浦迅科技

DAY26:阅读性能优化策略

834
来自专栏CSDN技术头条

Spark SQL在100TB上的自适应执行实践

Spark SQL是Apache Spark最广泛使用的一个组件,它提供了非常友好的接口来分布式处理结构化数据,在很多应用领域都有成功的生产实践,但是在超大规模...

3926
来自专栏惨绿少年

网络基础一 交换机 路由器 OSI7层模型

第1章 网络基础 1.1 网络的出现 解决计算机通讯的需求 实现计算机信息可以传递 1.2 主机之间实现通讯基本要求(三要素) ①. 需要在两台主机之间建...

1930

扫码关注云+社区