内存数据库「建议收藏」

内存数据库

大家好,又见面了,我是全栈君。

        内存数据库。顾名思义就是将数据放在内存中直接操作的数据库。

相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上訪问可以极大地提高应用的性能。同一时候。内存数据库抛弃了磁盘数据管理的传统方式,基于所有数据都在内存中又一次设计了体系结构,而且在数据缓存、高速算法、并行操作方面也进行了对应的改进。所以数据处理速度比传统数据库的数据处理速度要快非常多,一般都在10倍以上。内存数据库的最大特点是其“主拷贝”或“工作版本号”常驻内存,即活动事务仅仅与实时内存数据库的内存拷贝打交道。

内存数据库与传统数据库的异同

        传统的数据库系统是关系型数据库,开发这样的数据库的目的,是处理永久、稳定的数据。

关系数据库强调维护数据的完整性、一致性。但非常难顾及有关数据及其处理的定时限制,不能满足工业生产管理实时应用的须要。由于实时事务要求系统能较准确地预报事务的执行时间。

        对磁盘数据库而言,因为磁盘存取、内外存的数据传递、缓冲区管理、排队等待及锁的延迟等使得事务实际平均运行时间与估算的最坏情况运行时间相差非常大。假设将整个数据库或其基本的“工作”部分放入内存,使每一个事务在运行过程中没有I/O。则为系统较准确估算和安排事务的运行时间。使之具有较好的动态可预报性提供了有力的支持。同一时候也为实现事务的定时限制打下了基础。这就是内存数据库出现的主要原因。

       内存数据库所处理的数据一般是“短暂”的,即有一定的有效时间,过时则有新的数据产生,而当前的决策推导变成无效。

所以,实际应用中採用内存数据库来处理实时性强的业务逻辑处理数据。

而传统数据库旨在处理永久、稳定的数据,其性能目标是高的系统吞吐量和低的代价,处理数据的实时性就要考虑的相对少一些。实际应用中利用传统数据库这一特性存放相对实时性要求不高的数据。

在实际应用中这两种数据库经常结合使用,而不是以内存数据库替代传统数据库。

常见内存数据库

SQLite

SQLite是一个开源内存数据库,实现了独立的,可嵌入的。零配置的SQL数据库引擎。

http://www.sqlite.com.cn/ 

Oracle TimesTen内存数据库

Oracle TimesTen是一个全新设计的内存数据库。

它使用基于行的关系模型(表、列、数据类型、索引等)实现数据存储。并使用SQL作为訪问语言。

它提供了很多API,而且支持Oracle PL/SQL。应用程序的訪问方式与其它关系数据库全然同样。

http://download.csdn.net/detail/xunzaosiyecao/7307121l 

IBM SolidDB 

IBM solidDB 能够提供每秒数万至数十万事务的吞吐率,而且始终能够获得微秒级的响应时间(或延时)。

http://www-01.ibm.com/software/data/soliddb/ 

SAP-HANA

http://help.sap.com/hana/ 

Sqlserver 2014 Hekaton内存数据库引擎

http://www.cnblogs.com/CareySon/p/3155753.html 

其它參考资料:

http://www.searchdatabase.com.cn/guide/imdb.htm 
http://hemeicun.blog.163.com/blog/static/11157304820113645525209/ 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115404.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • long类型转化为int_int与long相加结果为

    long类型转化为int_int与long相加结果为一、强制类型转换Longlong=300000;inti=(int)long;二、调用intValue()方法inti=newLong(30000).intValue();三、先把long转换成字符串String,然后在转行成Integerlonglong=300000;inti=Integer.parseInt(String.valueOf(ll));对于采用queryRunner.query(connection,sql,newSc…

    2025年5月28日
    3
  • Databus简介「建议收藏」

    Databus简介「建议收藏」1.背景在互联网架构中,数据系统通常分为真实数据(source-of-truth)系统,作为基础数据库,存储用户产生的写操作;以及衍生数据库或索引,提供读取和其他复杂查询操作。后者常常衍生自主数据存储,会对其中的数据做转换,有时还要包括复杂的业务逻辑处理。缓存中的数据也来自主数据存储,当主数据存储发生变化,缓存中的数据就需要刷新,或是转为无效。这样架构自然而然的一个问题就是如何保障基础数

    2022年10月17日
    5
  • K8s基本概念入门_k8s菜鸟教程

    K8s基本概念入门_k8s菜鸟教程序言    没等到风来,绵绵小雨,所以写个随笔,聊聊k8s的基本概念。    k8s是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从创建应用,应用的部署,应用提供服务,扩容缩容应用,应用更新,都非常的方便,而且可以做到故障自愈,例如一个服务器挂了,可以自动将这个服务器上的服务调度到另外一个主机上进行运行,无需进行人工干涉。那么,问题来了,要运维何用?    k8s可以更快的更新新版

    2025年8月23日
    4
  • directshow使用说明_Process Monitor

    directshow使用说明_Process Monitor1.关于DirectShow1.1、介绍DirectX是微软公司开发的一套基于Windows平台的编程接口(API);它能出色地完成高速的实时动画渲染、交互式音乐和环境音效、高效多媒体数据处理等一般API很难完成的任务。DirectShow是DirectX大家族中的一位成员。DirectX的家族成员很多,而且各有各的本领,就如DirectDraw和Direct3D负责二维图形图像/三维动画加速、DirectMusic和DirectSound负责交互式音乐/环境音效处理一样,DirectShow为

    2022年10月12日
    3
  • PHP验证邮箱地址代码

    PHP验证邮箱代码:functionisEmail($email){returnstrlen($email)>6&&preg_match("/^[\w\

    2021年12月20日
    67
  • 大数据建模五步法「建议收藏」

    大数据建模五步法「建议收藏」from:https://www.sohu.com/a/198093510_783844前一阵子,某网络公司发起了一个什么建模大赛,有个学员问我,数据建模怎么搞?为了满足他的好学精神,我决定写这一篇文章,来描述一下数据分析必须要掌握的技能:数据建模。本文将尝试来梳理一下数据建模的步骤,以及每一步需要做的工作。01第一步:选择模型或自定义模式这是建模的第一步,我们需要基于…

    2022年4月29日
    344

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号