浅析数据库算法与数据结构(一) LRU算法

简介: 内存规划对于数据库的使用是至关重要的,因为内存的速度快于硬盘,但是内存的价格更贵,所以往往容量比硬盘小很多。那么好钢要用在刀刃上,所以一个好的内存管理算法对于数据库是非常重要的。LRU就是最为常用的数据库内存管理算法之一

内存规划对于数据库的使用是至关重要的,因为内存的速度快于硬盘,但是内存的价格更贵,所以往往容量比硬盘小很多。那么好钢要用在刀刃上,所以一个好的内存管理算法对于数据库是非常重要的。

 

LRU算法

LRU算法的全称是Least Recently Used,意思是最近最少使用的意思,是一种内存管理算法,最早应用与Linux操作系统。LRU算法基于一种假设:长期不被使用的数据,在未来被用到的几率也不大,所以,当数据所占内存达到一定阈值时,我们要移除掉最近最少被使用的数据。

 

这个算法,非常符合数据库内存管理的需要,数据库的缓存在内存中,任何缓存的大小都是有限制的,并且总不如被缓存的数据多。就比如数据库的数据文件的大小远远超过就数据库缓存的大小。

 

因此,缓存总有被占满的时候。当缓存中已经没有空闲内存块时,如果新的数据要求进入缓存,就只有从缓存中原来的数据中选出一个数据块淘汰掉,用新进入缓存的数据覆盖这个牺牲者。这个淘汰者的选择,是很重要的。缓存是为了数据可以重复利用,因此,通常应该挑选缓存中最没有可能被重复利用的块当作淘汰者。

 

 

所以算法从大体逻辑上来说,需要维护一个根据访问次序组成的链表,链表的一端是最近访问的数据,我们可以称其为热端,而另一端是最近最少访问的数据,我们可以称其为冷端,每一次访问时,数据库更新这个链表,将最新访问的数据排列在最前端。当新的数据块进来时,数据库将淘汰掉最尾端的数据,加入新的数据并且将其排在最前面

image.png

LRU算法的改进

当然还有一些改进型的算法,比如Oracle会将链表分成两端,一个半是热的一半是冷的,当数据访问次数比较频繁的时候,数据会进入热的这一半,不会被淘汰,淘汰在冷的这一半发生,这样可以更好的保护热的数据

image1.png

 

以上就是数据库的LRU算法。

目录
相关文章
|
5天前
|
存储 机器学习/深度学习 算法
C 408—《数据结构》算法题基础篇—链表(下)
408考研——《数据结构》算法题基础篇之链表(下)。
70 29
|
5天前
|
存储 算法 C语言
C 408—《数据结构》算法题基础篇—链表(上)
408考研——《数据结构》算法题基础篇之链表(上)。
59 25
|
5天前
|
存储 人工智能 算法
C 408—《数据结构》算法题基础篇—数组(通俗易懂)
408考研——《数据结构》算法题基础篇之数组。(408算法题的入门)
53 23
|
30天前
|
存储 算法 测试技术
【C++数据结构——树】二叉树的遍历算法(头歌教学实验平台习题) 【合集】
本任务旨在实现二叉树的遍历,包括先序、中序、后序和层次遍历。首先介绍了二叉树的基本概念与结构定义,并通过C++代码示例展示了如何定义二叉树节点及构建二叉树。接着详细讲解了四种遍历方法的递归实现逻辑,以及层次遍历中队列的应用。最后提供了测试用例和预期输出,确保代码正确性。通过这些内容,帮助读者理解并掌握二叉树遍历的核心思想与实现技巧。
47 2
|
2月前
|
存储 运维 监控
探索局域网电脑监控软件:Python算法与数据结构的巧妙结合
在数字化时代,局域网电脑监控软件成为企业管理和IT运维的重要工具,确保数据安全和网络稳定。本文探讨其背后的关键技术——Python中的算法与数据结构,如字典用于高效存储设备信息,以及数据收集、异常检测和聚合算法提升监控效率。通过Python代码示例,展示了如何实现基本监控功能,帮助读者理解其工作原理并激发技术兴趣。
62 20
|
3月前
|
数据采集 存储 算法
Python 中的数据结构和算法优化策略
Python中的数据结构和算法如何进行优化?
|
3月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
92 1
|
23天前
|
算法 数据安全/隐私保护 计算机视觉
基于Retinex算法的图像去雾matlab仿真
本项目展示了基于Retinex算法的图像去雾技术。完整程序运行效果无水印,使用Matlab2022a开发。核心代码包含详细中文注释和操作步骤视频。Retinex理论由Edwin Land提出,旨在分离图像的光照和反射分量,增强图像对比度、颜色和细节,尤其在雾天条件下表现优异,有效解决图像去雾问题。
|
23天前
|
算法 数据可视化 安全
基于DWA优化算法的机器人路径规划matlab仿真
本项目基于DWA优化算法实现机器人路径规划的MATLAB仿真,适用于动态环境下的自主导航。使用MATLAB2022A版本运行,展示路径规划和预测结果。核心代码通过散点图和轨迹图可视化路径点及预测路径。DWA算法通过定义速度空间、采样候选动作并评估其优劣(目标方向性、障碍物距离、速度一致性),实时调整机器人运动参数,确保安全避障并接近目标。
121 68
|
1月前
|
算法 数据安全/隐私保护
室内障碍物射线追踪算法matlab模拟仿真
### 简介 本项目展示了室内障碍物射线追踪算法在无线通信中的应用。通过Matlab 2022a实现,包含完整程序运行效果(无水印),支持增加发射点和室内墙壁设置。核心代码配有详细中文注释及操作视频。该算法基于几何光学原理,模拟信号在复杂室内环境中的传播路径与强度,涵盖场景建模、射线发射、传播及接收点场强计算等步骤,为无线网络规划提供重要依据。

热门文章

最新文章