内存数据库是什么

内存数据库,简单地说,就是将数据放入内存中直接操作的数据库 。与硬盘相比,内存的信息读写速度要高出几个数量级 。将数据保存在内存中并与硬盘上的浏览进行比较,可以大大提高应用性能 。

内存数据库是什么

文章插图
数据库介绍内存数据库摒弃了传统的硬盘数据管理方法,根据所有数据在内存中重新设计了系统架构,并在数据缓存、快速算法和并行操作方面进行了相应的改进 。因此,数据处理速度远快于传统数据库,一般在 10 倍左右 。内存数据库的主要特点是其“主复制”或“工作版本”常驻内存,即活动事务只与即时内存数据库的内存复制相处 。
定义:配备数据库管理 DBS,DB 为 DBS 里的数据库,DBM(t)为在时刻 t,DB 内存中的数据,DBM(t)属于 DB 。TS 为 DBS 所有可能的事务组成的组合 。AT(t)为在时刻 t 活动状态下的事务集,AT(t)属于 TS 。Dt(T)为事务 T 在时刻 t 控制的数据,
Dt(T)属于 DB 。若在任何时候 t,都有:
随意 T 属于 AT(t) Dt(T)属于 DBM(t)
创立,则称 DBS 它被称为内存数据库系统,称为内存数据库系统 MMDBS;DB 称为内存数据库,称为内存数据库 MMDB 。
常见的例子有 MySQL 的 MEMORY 存储引擎、eXtremeDB、TT、FastDB、SQLite、Microsoft SQL Server Compact 等
核心技术MMDB 核心技术的实现除了具有一般数据库的特点外,还具有自身的独特性 。
MMDB 核心技术包括:⑴算法设计;⑵MMDB 检索技术;⑶查询处理与优化;⑷事务处理;⑸并发控制;⑹数据修复 。
MMDB 有别于 DRDB,DRDB 技术不再可用于内存数据库,需要对这一核心技术进行新的研究 。
存储技术性能在许多数据库应用系统中,特别是在电话程控交换行业,对数据的浏览特性有很高的要求 。这种应用一般有很高的交易量,需要很低的交易响应延迟,对数据库的稳定性有很高的要求 。比如电话交换的应用每秒都会让数据库有上千个查看或升级要求,每个要求都小于 50 ms的反应延迟,数据库一年只关闭几分钟 。MMDB 该系统可以满足该数据库应用程序的需要,但这需要 MMDB 在实现方式和策略上,对各部件的综合应用进行了较大的改进 。
存储方案MMDB 存储模型比 DRDB 更加高效 。在传统 MMDB 在此过程中,为了考虑存储空间的使用,系统中专业开发了一个存储记录中每个属性值的空间 。同时,用指针更换记录中的属性值,表针倾向于存储在堆中的属性值 。这种存储方案,在使用初期确实节省了大量的存储空间 。特别是当记录中含有大量重复值时 。而且,由于记录中的每个字段只存放在记录中 4 个字节长(32 在位置条件下)表针,因此记录可以很好地适用于拉长记录的存储,不再需要像表针那样,DRDB 在系统中,记录头部存储偏移支持拉长字段存储 。但这种存储方案并没有很好地考虑到CPU缓存的使用 。根据表针间接浏览数据,几乎相当于存储空间中的随机访问,严重影响缓存的利用率 。尤其在 64 位计算环境继续普及,内存容量本质上可以无穷无尽,内存价格在下降,但内存访问速度仍不能达到处理器的速度 。因而 。在以往 MMDB 在系统中,这种使用表针来节省存储空间,但忽略了缓存效果的存储模式,在当前的应用场景中,它有点小 。
可以说,前沿的数据库应用程序越来越重视内存的浏览效率,因此高性能的数据库管理必须最大限度地使用CPU缓存,并将可能使用的数据缓存放在多层次的缓存中 。对于缓存的使用和改进,数据放置部分尤为重要 。选择好的数据存储方案,提高数据分布的局部空间,提高缓存的利用率,提高性能 。目前,新数据存储方案的设计思路集中在调整记录中每个属性值的存储布局,可以根据要求访问记录中的一些特征,从而消除不必要的内存浏览造成的内存延迟 。因此,在本文中,提出了一种 MMDB 系统中常用的数据存储方法 。它仍然存储在记录中,但它改进了缓存的使用 。
数据加载电信的二次批价和即时累账是计费系统中的两个必要作用 。与一次批价相比,二次批价 。一次批价是根据国家标准资费计算价格,如: 全球通每分本地通话每分本地通话 0.4 人民币,在一次批价结束后,将根据该客户的套餐进行再次计算 。北京全球客户接通 4 以分钟手机为例 。一次批价结束后,这个话单的价格是 1.6 元,如果这些客户参与,10 元包月接通套餐,二次批价后,通话费用也为 0 元 。一次批价是用于各种运营商的中间结算,二次批价是针对客户个人的 。
即时累账就是把客户从每月开始 1 到目前为止,所有的费用都是积累起来的,也就是说,客户目前可以通过 10086 查出前一天的实时电话费 。累计账值可以帮助您操纵巨额电话费或让客户及时查看消费信息 。
二次审批和即时累计过程涉及客户材料、客户套餐等与用户相关的内容,电信支持系统在审批时应包含这些信息 。省级运营商稍大一点的信息会超过这些信息 1000 由于套餐、商品和不同的优惠标准的搭配,收费处理模型变得非常复杂 。将这部分数据系统加载是一笔不小的开支,导致收费响应缓慢,难以自动更新数据 。内存数据库的引入在一定程度上解决了这个问题 。
在第二批收费环节中,最大的信息量是详细的订单数据 。这部分数据不需要放在内存数据库中 。硬盘数据库在处理单个文件或设置提交记录时直接操作,不会影响系统性能 。最迫切的是将客户材料、套餐、运营套餐和收费套餐的相应关系数据、收费套餐模型数据和客户总数据放入内存数据库中 。这部分数据统计操作远比数据添加和更新操作更频繁 。除了这些信息,当然还有很多必要的数据也可以载入内存数据库 。
选择内存数据库后,用户可以使用业务部门或客户查询实时电话费时间,这比前一天只能发现的实时电话费在业务上有质的变化 。由于系统在处理这部分数据时的查看过程与以前完全相同,但系统消除了过去内存中的数据和硬盘数据库数据同步阶段,因此可以实时查询 。对于信用控制,过去系统在累账后按一定周期更新信用控制数据,存在时差,不能完全保证即时性 。
使用内存数据库后,信用控制可以直接获取内存数据库中实时电话费总表中的数据,并完全完成即时预警和关闭 。内存数据库在二次审批和累计账户中使用后,对防欺诈和收入保障体系也有很大的好处,可以充分保障运营商的合法权益 。
此外,内存数据库选择后,整体提高了系统审批价格和累计账户的响应速度,大大降低了浏览硬盘数据库的压力,提高了数据统计、变更和删除的效率,为后付款和预付款的结合带来了可能性 。
数据同步电信业务数据和计费系统中的数据一直在不断变化,这涉及到内存数据库中的数据和硬盘数据库数据的同步问题(为了清楚地描述,硬盘数据库在这里 Oracle DB 例如) 。数据同步包括两部分: 从内存数据库到 Oracle DB 数据同步和从 Oracle DB 到内存数据库的同步 。
Oracle DB 到内存数据库同步
这部分数据同步选择增量表、操作系统或 CRM 新增或更新的数据将形成 Oracle 在增量表中,收费后台运行先到这个增量表中查询数据 。如果可以在这个增量表中找到数据,将这个数据更新到内存数据库对应表中,如果找不到,可以直接在内存数据库中查看,从而保证数据的完整性和实用性 。由于增量表的信息量一般较小,因此这部分操作不会影响系统性能 。
内存数据库到达 Oracle DB 同歩
因为 Oracle 收费后台批价、累计数据基本上都包含在内存数据库中,所以,Oracle 数据库对应的数据表将主要用于内存数据库的数据备份 。
客户最新的实时电话费和其他信息存储在内存数据库中 。实时电话费查看将直接连接到内存数据库,以确保用户获得最新的成本信息 。信用控制也直接在内存数据库中查询数据,因此对于内存数据库,Oracle 这部分数据没有实际需求 。此时,内存数据库到达 Oracle 同一步需要由应用软件生成文件,按时往往 Oracle 在数据库中同步备份,或选择 Oracle 存储过程在设备相对空闲时间段进行数据导入 。
内存数据库与传统数据库的异同
传统的数据库管理是关系数据库 。开发此类数据库的目的是解决永久和稳定的数据问题 。关系数据库注重维护数据的完整性和一致性,但难以考虑相关数据和按时处理限制,不能满足工业生产管理的即时应用,因为即时事务规定系统可以清楚地预测事务的运行时间 。
对于硬盘数据库,由于硬盘存储、内外存数据传输、缓冲区管理、排队等待、锁延迟等推动事务的具体平均执行时间与估计的最坏执行时间有很大差异 。如果将所有数据库或其主要“工作”部分放入内存,则在执行过程中不存在每项事务 I/O,系统更准确地估计和安排事务的运行时间,它提供了强大的动态可预测性,为按时完成事务奠定了基础 。这就是内存数据库发生的重要原因 。
内存数据库解决的信息通常是“短”的,即有一定的有效期,过时是由新数据引起的,而当前的决策推论是无效的 。因此,在实际应用中,选择内存数据库来处理高度实用的领域模型处理数据 。传统数据库旨在解决永久稳定的数据,其性能目标是系统吞吐量强,成本低,处理数据的实用性相对较少 。在实际应用中,使用传统数据库这一特性来存储相对实用性要求较低的信息 。
这些数据库在实际应用中经常结合使用,而不是用内存数据库代替传统数据库 。
内存数据库也分为全内存计算和热内存计算 。全内存计算,即数据必须全部运载到内存中,对硬件要求很高,如 QlikView 等待商品 。热内存计算,部分数据加载到内存可以计算,硬盘和内存将有数据传输来计算未载入的信息,如 Yonghong Z-Suite 。
技术特征(1)选择复杂的数据模型来表示算法设计,数据冗余小,易于扩展,完成信息共享 。
(2)具有较高的数据和程序意识,数据库意识具有物理意识和逻辑意识 。
(3)内存数据库为用户提供了方便的用户接口 。
(4)给予内存数据库 4 数据控制的各个方面都是并发控制、修复、详细性和安全性 。数据库中每个应用软件使用的数据由数据库组织和创建,并由系统管理和集中控制 。
(5)增强了全面的灵活性 。
存储问题【内存数据库是什么】为了解决可持续的问题,内存数据库也有相应的解决方案 。这包括在集团中存储额外的数据副本,然后水平扩展数据库,以便系统可以不断地将升级的数据复制到一个或多个备用系统中 。
一些数据库管理会定期将数据复制到硬盘系统中,以应对上述突然断电或系统停机的现象 。当然,此时需要在额外负荷和信息可恢复性方面进行测量 。
因为内存数据库的风险比传统数据库高 OLTP 数据库很大,所以我们应该对它支持的软件系统有一个更清晰的理解 。目前,总的来说,传统的传统是传统的 OLTP 软件系统通常尝试使用内存数据库技术,它更多地应用于特定的数据类型或分析应用程序(包括批处理报告系统),该系统的信息远不如 OLTP 系统关键 。
另一方面,也是出于成本预算的考虑,DRAM 与传统硬盘甚至闪存相比,它更贵 。