返回介绍

7.1 内存数据库 In-memory

发布于 2024-09-26 01:07:51 字数 1983 浏览 0 评论 0 收藏 0

内存数据库,顾名思义就是将数据放在内存中直接操作的数据库。相对于 磁盘 ,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。

7.1.1 简介

内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了 体系结构 ,并且在 数据缓存 、快速算法、并行操作方面也进行了相应的改进,所以 数据处理 速度比 传统数据库 的数据处理速度要快很多,一般都在 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、 FastDBSQLite 、Microsoft SQL Server Compact 等

内存数据库从范型上可以分为关系型内存数据库和键值型内存数据库。在实际应用中内存数据库主要是配合 oracle 或 mysql 等大型关系数据库使 用,关注性能,作用类似于缓存,并不注重数据完整性和数据一致性。基于键值型的内存数据库比关系型更加易于使用,性能和可扩展性更好,因此在应用上比关系 型的内存数据库使用更多。

7.1.2 案例

需求实例 :电信计费系统中的二次批价和实时累账。二次批价是关于套餐优惠计费,实时累账时计算月初到昨天的话费统计额。

设计方案 :数据划分,将一部分常用数据放在内存供查询,另一部持久化存储数据放在磁盘。如用户基本信息,套餐信息,实时话费统计信息放在内存中;(此方案明显优于共享内存,接口可标准化,可扩展)

内存与磁盘的同步方式:

  • 磁盘到内存的同步:增量表,程序先查增量表,有则更新内存;否则查内存
  • 内存到磁盘的同步:磁盘此时是内存数据的备份。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文