mysql数据库映射到内存_基于共享内存的数据库映射

基于共享内存的数据库映射

概述

随着各类行业软件对性能追求越来越高,因此对数据库处理的速度提出了新的挑战。然而大部分复杂的业务处理往往依赖体量较大的关系数据(如:Oracle,Mysql,PostgresSQL等),虽然这些关系数据库的功能已经足够的强大,但这些数据库的性能方面在某些场合又未必能满足我们的要求。因此,一些NOSQL的数据库(如:Redis、MongoDB、LevelDB等)逐渐占领了一部分市场。同时内存数据库(如:Sqlite、Oracle TimesTen、eXtremeDB等)也被广泛的使用。

本文主要讨论,将关系数据库中的数据映射至(共享)内存,然后在内存中对其进行操作。使用共享内存方式和OCI/OCCI接口对ORACLE数据库的表或视图进行内存映射,当然也不局限于ORACLE数据库,理论上是可适用大部分关系数据库,甚至结构化的文件(CSV,XML,JSON等)。同时,共享内存的使用为多进程共享业务数据提供了基础。

共享内存

提到共享内存就要先说说Linux进程间通信(IPC:InterProcess Communication)

,linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。进程通信的目的主要是,传输数据、资源共享、进程控制等。常用的进程间通信手段包括:管道、信号、消息队列、共享内存、信号量、套接字(SOCKET)等。

共享内存是在多个正在运行的进程之间传递数据的一种非常有效的方式。共享内存的具体实现是不同进程共享的内存分配同一段物理地址,如下图。

如图所示,进程1的逻辑地址空间和进程2的逻辑地址空间映射到同一块物理内存,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值