十种数据库缓存相关的技术和机制

news2024/11/24 19:55:20

数据库的缓存 -- 通过将数据库中的数据或结果集保存在内存或其他快速访问的介质中,能够加快查询响应,减少对磁盘或远程服务器的访问,降低资源消耗。

根据缓存的位置、内容、粒度、更新方式等不同,数据库缓存技术有多种类型和策略。常用的以下10种:

1、Buffer Pool:

数据页缓存 -- 将频繁访问的数据页缓存在内存中的技术,可以提高查询性能和减少磁盘I/O。数据页是数据库中存储数据的最小单位,通常为4KB或8KB。当查询需要访问某个数据页时,数据库会先检查该数据页是否已经在Buffer Pool中,如果是,则直接从内存中读取,如果不是,则从磁盘中读取并放入Buffer Pool中。Buffer Pool的大小可以根据系统资源和数据库负载进行调整。

2、查询缓存( Query cache )

缓存经常重复的查询结果,避免重复执行SQL,可以节省CPU资源和网络带宽。当查询缓存开启时,数据库会将每个查询的SQL语句和结果集保存在内存中,当收到相同的SQL语句时,数据库会直接返回缓存的结果集,而不需要再次执行SQL。查询缓存的有效性依赖于表的更新频率,如果表经常被修改,则查询缓存会失效并需要重新生成。

3、预读 ( Pre-fetching )

根据数据库的访问模式,预先缓存可能使用的数据,是一种提高查询性能和预防磁盘I/O瓶颈的技术。预读有两种类型:顺序预读随机预读。顺序预读是指当数据库检测到连续访问相邻数据页时,会提前从磁盘中读取后续的数据页并放入Buffer Pool中,以满足后续的查询需求。随机预读是指当数据库检测到频繁访问某些索引页时,会提前从磁盘中读取相关的数据页并放入Buffer Pool中,以加速索引查找。

4、异步I/O ( Asynchronous I/O )

允许多个查询并发访问缓存,是提高数据库吞吐量和响应时间的技术。当数据库需要从磁盘中读取或写入数据时,不阻塞当前的查询进程,而是将I/O请求交给系统处理,并继续执行其他查询或操作。这样避免查询等待I/O完成而浪费CPU资源,并可以充分利用系统的I/O调度算法和硬件特性。

5、连接池 ( Connection Pool )

复用已存在连接的技术。避免连接反复创建、销毁,减少连接开销,提高连接效率。由数据库服务器维护一组已经建立好的连接,并将其保存在内存中。当客户端请示连接数据库时,数据库服务器从连接池中分配一个空闲的连接给客户端,并在客户端断开连接后将连接回收到连接池中。避免了每次都重新建立和销毁连接所带来的时间和资源消耗,并且可以控制并发连接数量。

6、照合缓存 ( Metadata Cache )

为了加速表扫描和索引查找,缓存经常访问表的元数据信息的一种缓存技术。照合缓存是将每个表的结构、列、索引、约束等信息保存在内存中,并在收到对该表的查询时直接从内存中获取这些信息,而不需要再次从系统表中读取。这样可以减少对系统表的访问次数,快速确定查询计划。

7、Write Ahead Log

事务提交前先写入日志,可以保证事务的持久性和原子性。Write Ahead Log是当数据库执行一个事务时,并不是立即将事务对数据的修改写入磁盘,而是先将事务的操作记录写入日志文件中,在事务提交时将日志文件刷新到磁盘。这样可以避免频繁的数据写入操作,并且可以在数据库崩溃时根据日志文件恢复数据的一致性。

8、事务日志( Transaction Log )

记录事务执行情况,用于数据库恢复。事务日志是数据库服务器将每个事务的开始、结束、提交、回滚等信息记录在日志文件中,并在数据库崩溃时根据这些信息恢复事务的状态。可以保证事务的完整性和隔离性,避免数据丢失或脏读。

9、复制日志( Replication Log )

主从复制时的数据同步日志。复制日志是当数据库服务器作为主服务器时,将自己对数据的修改记录在日志文件中,并将日志文件发送给从服务器,从服务器则根据日志文件更新自己的数据。这样可以实现主从之间的数据一致性,并且可以在主服务器故障时切换到从服务器继续提供服务。

10、物化视图 ( Materialized View )

将查询结果缓存,是一种避免重复计算的技术。物化视图是数据库服务器将某个复杂查询的结果集保存在一个表中,并定期更新这个表。当收到相同或类似的查询时,数据库服务器会直接从物化视图中返回结果,而不需执行复杂查询。

相关内容拓展:(技术前沿)

开发语言作为软件搭建的底层,长久以来一直使用英文编程,Java、C 等语言对于专业程序员来说并不难,然而许多非 IT 专业的人,希望搭建出适合自己使用的软件,却被晦涩难懂的英文编程阻拦在外。

所幸的是,自 2000 年以来,低代码领域虽然在夹缝中艰难生存,但是经历 20 年风雨,如今却已柳木成荫,相关领域企业超过百家,近年如火如荼的“JNPF 平台”更是低代码界的一匹黑马。

JNPF 平台由具备 10 多年系统开发经验和企业项目交付经验的技术团队倾力打造而成的企业级低代码平台。支持多国语言切换搭建界面,业务流程只需要“拖拉拽”方式、少量或完全不需要编写代码即可搭建,操作起来就像搭积木一样简单,会玩电脑就可以开发软件。

核心功能:表单引擎、可视化引擎、BI引擎、流程引擎、权限引擎、门户引擎、大屏引擎、接口中心、物联平台

如果那你未曾尝试过这个领域,你或许可以试试看!官网:https://www.jnpfsoft.com/?csdn

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1004276.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NAT(网络地址转换)

文章目录 一、产生背景二、公有地址和私有地址三、定义四、分类五、常用命令 首先可以看下思维导图,以便更好的理解接下来的内容。 一、产生背景 IPv4公网地址资源耗尽: 由于IPv4地址空间有限,公网IPv4地址资源逐渐耗尽,导致难以分…

图像尺寸测量仪:解析适用零部件与应用领域

图像尺寸测量仪也叫一键测量仪器,全自动闪测仪等,是一种精密二次元测量仪器。它能够精确测量各种零部件的形状和尺寸,核心优势在于测量大批量小型精密零部件,这对于质量控制和生产流程的优化至关重要。 图像尺寸测量仪适用于哪些…

简记——示波器测量上电冲击、电源纹波方法

一、示波器测量上电冲击 1、用稳压电源给电路板供电,在正极上串联一个20欧的电阻,设置示波器如下: 类型: “边沿触发”, 斜率: “上升”, 触发方式: …

工信部短信核验常见问题

1、收不到管局发送的核验短信怎么办? 如果你未收到管局发送的核验短信,请按以下信息进行排查。检查信息是否被手机管家识别为垃圾或骚扰短信被拦截,确认能不能正常接收其他短信。检查手机是否欠费停机。建议你将手机卡插入其他手机&#xff…

unity 接收拼接数据进行纹理替换且保存相机纹理到rtsp server(一)

1 rtsp 协议后编码解码 rtsp协议的问题就是,拼接完成后,还需要编码,而unity里面再需要解码,需要的过程多了一步编码再解码,大大加重了 2 rtsp 协议后轻量编码 rtsp协议使用mjpeg进行图片传输。why?这样做…

C++信息学奥赛1170:计算2的N次方

#include <iostream> #include <string> #include <cstring>using namespace std;int main() {int n;cin >> n; // 输入一个整数nint arr[100];memset(arr, -1, sizeof(arr)); // 将数组arr的元素初始化为-1&#xff0c;sizeof(arr)表示arr数组的字节…

没有办法destory 一部分array

C Deleting part of dynamic array - Stack Overflow

C++之std::enable_shared_from_this实例(一百九十八)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

如何利用在线考试系统优化答题过程

随着技术的不断进步&#xff0c;越来越多的考试机构和教育机构开始采用在线考试系统进行评估和测验。使用在线考试系统可以极大地提升答题的效率和准确性。 准备阶段 在开始答题前&#xff0c;有一些准备工作可以帮助优化答题过程。 要仔细阅读考试要求和题目说明。这些说明…

JS中应该注意的点

本帖子记录在使用前端时遇到的一些小点。 1.html()和text()和val()的使用及区别 1.1 val() val&#xff08;&#xff09;是对于单标签元素的值&#xff0c;其中一个很重要的特性是value"" Value:<input id"input" type"text" value"LO…

postman导入json脚本文件(Collection v1.0、Collection v2.0)

1. 以postman v8.5.1 版本为例 2. 在postman v5.0.2 低版本中导出json脚本文件, 请选择Collection v2.0 Export - Collection v2 3. 在postman v8.5.1 版本 导入 json脚本文件 Import - Collection v2 - Export - Import

ROS rviz常用可视化插件

文章目录 ROS rviz常用可视化插件rviz常用可视化组件GridMapLaser ScanPointCloud2TFImagesPathMarker ROS rviz常用可视化插件 rviz RViz&#xff08;Robot Visualization&#xff09;是ROS&#xff08;Robot Operating System&#xff09;中的一个重要工具&#xff0c;用于…

常见的网络欺诈风险类型有哪些?

身份伪冒&#xff0c;这是非常典型的第三方欺诈&#xff0c;指的是不法分子使用虚假身份证等身份信息、未经他人同意而冒用他人身份获取贷款的骗贷行为。 另外还有帐号垃圾注册&#xff0c;通过大规模的帐号注册&#xff0c;养号养卡&#xff0c;控制帐号骗贷。此外还有中介包装…

原型链解释

一、什么是原型链 原型链是javascript中用来实现类似类继承的一套机制。像链条一样把javascript中的对象连接起来&#xff0c;实现类似子联系父的现象。 二、原型链的实现 总的来说&#xff0c;就是&#xff1a; 对象的__proto__指向其构造器的prototype对象&#xff0c;然后…

上半年实现营收9.24亿元,创新奇智的AI成制造业福星?

如今&#xff0c;AI大模型迈入了商业化落地的新阶段&#xff0c;并且已经有不少产品被不知不觉地应用到了生活各个方面。 其中&#xff0c;作为AI领域的后起之秀&#xff0c;创新奇智也于近日发布了截至2023年6月30日止六个月的中期业绩报告。数据显示&#xff0c;创新奇智202…

新建的SFTP用户,连接报错

useradd -m -d /usr/local/data/ftp/abc abc 新建SFTP用户 usermod -g sftpgroup -G sftpgroup abc 将abc加入到sftpgroup组 Received disconnect from 192.168.10.2 port 22:2: Too many authentication failures Disconnected from 192.168.10.2 port 22 Connection clos…

6、DVWA——SQL injection

文章目录 一、概述二、low2.1 通关思路&#xff08;1&#xff09;判断是否存在sql注入漏洞。&#xff08;2&#xff09;判断字符型还是数字型&#xff08;3&#xff09;判断字段数&#xff08;4&#xff09;查看回显点&#xff08;5&#xff09;查看数据库名&#xff08;6&…

R730xd风扇调速

共使用了三个方法都是有效的&#xff0c;dell_fans_controller_v1.0.0和Dell_EMC_Fans_Controller_1.0.1以及ipmitool&#xff0c;前面两个是GUI界面后面一个是命令行工具 重点 我虽然能通过设置的ip地址能访问idrac管理界面&#xff0c;但是使用上面三个工具都是无法获取风扇…

C++:模板(函数模板、类模板)

本文主要介绍泛型编程、函数模板和类模板。 目录 一、泛型编程 二、函数模板 1.函数模板概念 2.函数模板格式 3.函数模板的原理 4.函数模板的实例化 5.模板参数的匹配原则 三、类模板 1.类模板的定义格式 2.类模板的实例化 一、泛型编程 如何实现一个通用的交换函数…

普通的maven里面没有配置tomcat服务器问题

上面的意思也就是可以直接如下访问 他会直接给我们跳转到 webapp下面的index.jsp页面 为什么跳转到这个页面呢&#xff0c;原因在于我们在tomcat服务器里面的配置文件web.xml做了如下配置 只要webapp下面有如上几个页面&#xff0c;就会被默认运行 如果运行中出现控制台中文…