内存数据库和关系数据库之间的数据同步原理

关系数据库到内存数据库同步
这部分数据同步采用增量表的方式,系统新增或更新的数据将生成到关系数据库的增量表中,程序先到这些增量表中查询数据。如果能在这些增量表中查到数据就把这些数据更新到内存数据库对应表中,如果查不到,就直接从内存数据库中直接查询,从而保证了数据的完整性和实时性。由于增量表的数据量一般会很小,所以这部分操作不会影响系统的性能。
内存数据库到关系数据库同步
由于关系数据库的数据几乎都加载到了内存数据库中,所以关系数据库对应的数据表将主要用于对内存数据库的数据备份。
用户最新的信息都保存在内存数据库中,实时查询将直接连接到内存数据库中查询,保证用户得到最新的信息。因此对关系数据库中的这部分数据已经没有实时性的要求。这时内存数据库到关系数据库的同步可以由应用程序生成文件,定时地往关系数据库中同步备份,或者采用关系数据库的存储过程在系统相对空闲时间段进行数据导入就可以了。
传统的数据库系统是关系型数据库,开发这种数据库的目的,是处理永久、稳定的数据。关系数据库强调维护数据的完整性、一致性,但很难顾及有关数据及其处理的定时限制,不能满足工业生产管理实时应用的需要,因为实时事务要求系统能较准确地预报事务的运行时间。
对磁盘数据库而言,由于磁盘存取、内外存的数据传递、缓冲区管理、排队等待及锁的延迟等使得事务实际平均执行时间与估算的最坏情况执行时间相差很大,如果将整个数据库或其主要的“工作”部分放入内存,使每个事务在执行过程中没有I/O,则为系统较准确估算和安排事务的运行时间,使之具有较好的动态可预报性提供了有力的支持,同时也为实现事务的定时限制打下了基础。这就是内存数据库出现的主要原因。
内存数据库所处理的数据通常是“短暂”的,即有一定的有效时间,过时则有新的数据产生,而当前的决策推导变成无效。所以,实际应用中采用内存数据库来处理实时性强的业务逻辑处理数据。而传统数据库旨在处理永久、稳定的数据,其性能目标是高的系统吞吐量和低的代价,处理数据的实时性就要考虑的相对少一些。实际应用中利用传统数据库这一特性存放相对实时性要求不高的数据。
在实际应用中这两种数据库常常结合使用,而不是以内存数据库替代传统数据库。
而内存数据库也分全内存计算和热内存计算。全内存计算,即数据需要全部装载到内存中进行计算,对硬件要求高,譬如QlikView等产品。热内存计算,部分数据加载到内存中即可以进行计算,硬盘和内存会有数据交换来计算未加载的数据,譬如Yonghong Z-Suite。

转载于:https://www.cnblogs.com/hnxxcxg/p/4266836.html

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

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

相关文章

java 图片压缩100k_java实现图片压缩

简介我们在项目中经常会遇到图片上传的需求,如商品图片,但图片太大的话,在客户端加载太慢影响用户体验,所有一般会将图片进行压缩。实现原图添加依赖net.coobirdthumbnailator0.4.8按质量压缩import java.io.File;import java.io.…

前端学习(1352)模板语法

demo27.js const template require(art-template); //绝对路径 模板中显示的数据 const path require(path); const views path.join(__dirname, 01.art); const html template(views, {name: 张三,age: 20,content: <h1>我是歌谣</h1> }); console.log(html)…

marker 头像 高德地图_高德地图头像怎么更换 高德地图更换头像图文教程

相信绝大部分人都知道微信头像以及QQ头像怎么更换&#xff0c;而设置头像也是很多人喜欢做的一件事情。而对于经常使用高德地图的用户来说&#xff0c;头像该怎么设置呢&#xff1f;对于这群用户&#xff0c;下面百事网小编为大家带来详细的高德地图更换头像图文教程&#xff0…

UVA10763:Foreign ExchangeUVA10340: All in All(水题)

10763:水题不解释直接贴代码。 #include <iostream> #include <string.h> #include <stdio.h> #include <algorithm> #include <math.h> #include <queue> #define eps 1e-9 typedef long long ll; using namespace std; int n; int d[500…

项目经验BigDecimal

BigDeciaml1. BigDecimal1. BigDecimal 我们知道&#xff0c;关于金钱相关的计算&#xff0c;都用BigDeciaml数据类型, 来表示金额。所有关于金额的项目中不能缺少它的使用。 而我今天说说用这个类型&#xff0c;踩到的坑。 金额比较问题 带精度不适用equals比较。使用compar…

前端学习(1353)模板语法条件判断

const template require(art-template); //绝对路径 模板中显示的数据 const path require(path); const views path.join(__dirname, 02.art); const html template(views, {name: 张三,age: 20,/* content: <h1>我是歌谣</h1> */ }); console.log(html); 0…

MySql 缓存查询原理与缓存监控 和 索引监控

MySql缓存查询原理与缓存监控 And 索引监控 by:授客 QQ&#xff1a;1033553122 查询缓存 1.查询缓存操作原理 mysql执行查询语句之前&#xff0c;把查询语句同查询缓存中的语句进行比较&#xff0c;且是按字节比较&#xff0c;仅完全一致才被认为相同。如下&#xff0c;这两…

python pandas 数据分析 DataFrame

二维组转表 import pandas as pdarr [[google, 100], [amazon, 99], [github, 233], [microsoft, 88]]df pd.DataFrame(dataarr, columns[Site, Age]) # 二元组转成表&#xff0c; 列为 Site 和 Age. print(df)col df[Age]# 获取Age列 print(col)# 获取Age > 100的所有行…

前端学习(1354):集合关联

const mongoose require(mongoose); mongoose.connect(mongodb://localhost/playground, { useUnifiedTopology: true }).then(() > console.log(数据库连接成功)).catch(err > console.log(err, 数据库连接失败)) const userSchema new mongoose.Schema({name: {type:…

ati jti jwt 和_一文搞懂JWT

Django REST framework JWT一、JWT简介二、JWT 组成headersignature三.使用手动生成jwt前端保存jwt一、JWT简介JWT(Json Web Token) 是一个开放标准(RFC 7519)&#xff0c;它定义了一种用于简洁&#xff0c;自包含的用于通信双方之间以 JSON 对象的形式安全传递信息的方法。JWT…

[禅悟人生]心平气和, 慢慢修行

有一个人问投子大同禅师&#xff1a;“一个没有眼晴的人&#xff0c;走路时应该怎样选择方向呢&#xff1f;” 禅师回答说&#xff1a;“他可以朝着四面八方行走&#xff0c;周围都会留下他的脚印。” 那人又问&#xff1a;“既然他都没有眼睛&#xff0c;那么他的脚印怎么会遍…

前端学习(1355)模板语法循环

const template require(art-template); //绝对路径 模板中显示的数据 const path require(path); const views path.join(__dirname, 03.art); const html template(views, {users: [{name: geyao,age: 20,sex: 男}, {name: xiao,age: 20,sex: 男}, {name: hau,age: 20,se…

c++检测ip是否匹配子网掩码_网络工程师从入门到精通通俗易懂系列 | ARP和IP这篇文章讲的相当详细了,这么基础的知识往往也是最容易遗忘的!...

网络层负责将报文从源送到目的包括TCP建立连接&#xff0c;也需要依靠网络层&#xff0c;来将这个连接请求&#xff0c;传递到对方。为设备提供逻辑地址&#xff0c;也就是IP地址主流是IPV4地址IPV4地址&#xff0c;为32位二进制数&#xff0c;长度4个字节&#xff0c;1字节等于…

复合索引字段的排序对搜素的影响

索引是对数据库大数据的查询优化的一种有效的手段&#xff0c;索引又可分为唯一索引和复合索引 单一索引是指索引列为一列的情况&#xff0c;即新建索引的语句只实施在一列上面。 用户可以在多个列上建立索引&#xff0c;这种索引叫做复合索引(组合索引)。复合索引的创建方法与…

mysql图片jsp_mysql jsp 图片

?转个帖子给你&#xff0c;我也是用的这个&#xff0c;已经成功实现了的。我在程序代码里贴了向Mysql数据库写入image代码的程序&#xff0c;可是好多人都是Java的初学者&#xff0c;对于这段代码&#xff0c;他们无法将它转换成jsp&#xff0c;所以我在这在写一下用jsp怎样向…

递归和迭代的差别

递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己. 一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题类似的规模较小的问题来解决,能够极大的降低代码量.递归的能力在于用有限的语句来定义对象的无限集合. 使…

前端学习(1357) :模板配置

const template require(art-template); //绝对路径 模板中显示的数据 const path require(path); const views path.join(__dirname, 07.art); const dateFormat require(dateFormat) template.defaults.imports.dateFormat dateFormat; const html template(views, {ti…

使用Office Word 2010/2013 发布文章到博客园

使用Office Word 2010/2013 发布文章到博客园 ☆&#xff1a;参考http://www.cnblogs.com/liuxianan/archive/2013/04/13/3018732.html&#xff1b; 软件准备&#xff1a;Office Word2010/2013 初次使用&#xff0c;必要的配置&#xff1a; Office Word2010&#xff1a;代开wor…

前端学习(1355) 子模板

const template require(art-template); //绝对路径 模板中显示的数据 const path require(path); const views path.join(__dirname, 04.art); const html template(views, {msg: 我是首页,name: geyao,age: 20 }); console.log(html); 04.art {{include./index.art}} {…

mysql 正无穷字符_mysql 字符串函数收集比较全

ASCII(str)返回字符串str的 最左面字符的ASCII代码值。如果str是空字符串&#xff0c; 返回0。如果str是NULL&#xff0c;返回NULL。 mysql> select ASCII(2);-> 50mysql> select ASCII(2);-> 50mysql> select ASCII(dx);-> 100也可参见ORD()函数。ORD(str)如…