这节课主要是搞懂两大问题,如下图:

来自于CMU课程15445 slide

问题一:首先这门课把存储设备分为“Non-volatile" 和“Volatile"两种,区别在于断电后数据是否得到保存。一般来说,内存(memory)里的数据在断电后就全部清除了,而磁盘(disk)断电后却能够保存。

而我们平时所说的数据库database 里的数据一般来说是要保存在disk里,保持其断电后再开机数据还在。那么数据库里的文件是按什么来表示的呢?这就是问题一所要搞懂的,看看slide怎么说:

它是按照database>>files>>pages>>data:tuple,indexes,metadata,log records的层次来组织的。

如果数据库需要对数据进行增删改查等操作,又是在哪里进行呢?

那么第二个问题来了:dbms如何实现内存和磁盘之间的数据转移呢?

这时我们要使用的是一个叫buffer pool的结构, buffer pool 是一种在内存中用来存放数据库传来的page的空间,所以它每一个slot的大小和page大小相同,并且能指向page在数据库中的位置,实际上有个page table的数据结构通过hash保存buffer现有的page位置的映射。如下图所示:

既然buffer存的只能是数据库中的一小部分page, 那么当需要操作的数据不在buffer中,这时便要从disk的数据库里面调出相应的page, 然后放到buffer中进行操作。若buffer是空的,那可以按照顺序存放,如果buffer是满的话就要考虑替换哪一个page, 本课介绍了以下替换策略(包括替换哪一页以及替换后的位置):

1.Least Recently Used (LRU)

字面上的意思是最久未使用算法,而不是很多教科书翻译的最近最少未使用算法。参考这篇回答哪些专业名词翻译得特别烂? 那么怎么理解呢,比如说你的书桌上有一叠资料,每次用的时候拿出其中一本,然后放到最上面。越久没用到的资料自然就排到下面了。

要替换新的page时就把最早使用的page拿掉然后新的page放到最上面。相当于最底下的资料拿走,把新加进来的资料放到最上面。

2.CLOCK

CLOCK的特点在于它维持一个指针指向buffer每个page slot的位置,按照顺序移动。此外还有一个叫second-chance-bits的二进制位,每次access新的page时这个位设为1,如果命中,则该页和second-chance-bit的数不变。如果有新的叶要替换buffer原有的page时,则从指针当前的位置按照顺序遍历,若该second-chance-bit为1,则设为0,继续遍历下一位,若该位为0,则替换该位的page并且将second-chance-bit设为1。

accdb原有的数据怎么清除_数据库存储(database storage)相关推荐

  1. accdb原有的数据怎么清除_升级ios12之后,苹果手机系统内存占用过高怎么办?...

    之前有不少苹果手机都升级到了最新的ios12.1系统,但是,升级ios12.1之后,一些用户在查看iPhone存储空间的数据时发现,系统占用的内容非常高,有的10几GB,苹果手机系统内存占用过高怎么办 ...

  2. accdb原有的数据怎么清除_VBA中利用数组对数据批量处理的方法

    大家好,今日继续和大家分享VBA编程中常用的常用"积木"过程代码.这些内容大多是我的经验和记录,来源于我多年的经验.今日分享的是NO.225-NO.226,内容是: NO. 225 ...

  3. 1.sql 数据据基础_数据库的组成

    数据库的组成 本节将介绍数据库的组成,并使用本书所附带的范例数据库 eBook,其内容如图 3-2 所示. 图 3-2 数据库的组成 如图 3-2 所示,从"数据库关系图"到&qu ...

  4. easyui数据表格重置_数据库三种删除方式

    第一种 使用delete 语句 特点: delete 属于数据库操纵语言DML,表示删除表中的数据, 删除过程是每次从表中删除一行,并把该行删除操作作为事务记录在日志中保存 可以配合事件(transa ...

  5. mysql 查找相似数据_数据库存储引擎大揭秘,不看不知道这里面的骚操作可真多!...

    吊打各种树这篇文章 带大家学习一遍数据结构中的各种树,对数据结构还不够熟悉的同学,那篇文章可以作为基础入门,我画了很多图理解起来不困难,建议回头先学习下那篇文章,更容易理解本文要讲的内容. 文章里有提 ...

  6. Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储(转)

    Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...

  7. python抓取数据库数据_Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储...

    Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...

  8. python爬虫实现股票数据存储_Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储!...

    Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...

  9. python爬虫爬取股票软件数据_Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储(转载)...

    完整代码 实际上,整个事情完成了两个相对独立的过程:1.爬虫获取网页股票数据并保存到本地文件:2.将本地文件数据储存到MySQL数据库.并没有直接的考虑把从网页上抓取到的数据实时(或者通过一个临时文件 ...

最新文章

  1. iOS动画详解(学习动画看这一篇就够了)
  2. 兄弟9020cdn废粉仓位置_硒鼓的无废粉仓设计是否真的有效?
  3. MOVW 和 rep
  4. 【AC Saber】双指针
  5. android调试是出现:Re-installation failed due to different application signatures
  6. django设置paypal支付如何获取signature
  7. IOS开发基础之汽车品牌项目-14
  8. excel导入 HSSFWorkbook和XSSFWorkbook
  9. Java让数据库执行一条sql_java数据库编程——执行SQL 语句
  10. ubuntu python3.5安装_Ubuntu14.04安装使用Python3.5
  11. 软件项目测试报价单,某软件项目报价单
  12. 腾讯手游助手选择不了服务器失败,腾讯手游助手启动模拟器失败的解决方法
  13. creo绘图属性模板_creo完整制作工程图模板.docx
  14. 高精度IP地址定位接口的使用场景
  15. python seo 外链_用python实现超级外链发布系统
  16. 发现孔子家谱很有意思事情,南宗,北宗是怎么回事?
  17. winEdt下编辑报错:Something‘s wrong--perhaps a missing \item. \end{thebibliography}
  18. 微信小程序 - requestSubscribeMessage:fail can only be invoked by user TAP gesture.
  19. python 等腰三角形的性质,相似三角形性质判定().ppt
  20. 换了5G手机不会用5G网络?赶快来补课!

热门文章

  1. PyCharm母公司JetBrains出品,一款类似ggplot2的python可视化工具!!
  2. 【074】技术领先 | 翼辉 SylixOS 通过 IEC 61508(SIL3) / EN 50128(SIL4) 国际安全认证
  3. 一步一脚印,创造辉煌
  4. 史上最强的绕口令,吐血也读不出
  5. 做你自己思想世界的君王
  6. 信息安全风险管理概述
  7. 猿创征文|那些年我们追过的那些技术
  8. DEDECMS的函数、PHP语法
  9. react-native环境配置
  10. arcgis网络分析最短距离_ArcGIS 网络分析[2.1] 最短路径