开发者社区> jiankunking> 正文

内存数据库

简介:         内存数据库,顾名思义就是将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。同时,内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多,一般都在10
+关注继续查看

        内存数据库,顾名思义就是将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。同时,内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多,一般都在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/ 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
内存数据库 HSQLDB
<p>应用</p> <p>    在JUnit单元测试中,由于,很多时候没有真实数据库环境,所以,我们很自然的会借助内存数据库HSQLDB。内存数据库非常轻量级,当内存数据库关闭后,内存中的数据也随之消失。代码虽然简单,但还是贴出来,呵呵,供以后复制粘贴方便。</p> <p><br></p> <p>jdbcDriver in pom.xml of Maven:<br></p> <p
1558 0
一个有趣的内存数据库
import java.sql.*; Class.forName("jstels.jdbc.
556 0
内存数据库到底有多快?
并发量太高的应用中(比如10分钟内插入300w条记录),数据库往往难堪重负,在没有银子实现服务器集群/负载均衡/分布式存储的情况下,可以尝试一下把数据库做一个临时副本全部放在内存中处理,完成操作后,再同步到硬盘的物理数据库中。
964 0
内存数据库
        内存数据库,顾名思义就是将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。同时,内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多,一般都在10
1302 0
内存数据库H2使用
1)一个jar包,一个bat脚本: 2)点击h2.bat: 3) 使H2数据库 可以远程连接: 4)java调用: import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; im
1424 0
如何让NoSQL内存数据库适合企业级应用
如何让NoSQL内存数据库适合企业级应用 作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs 英文原文:How to Make Your In-memory NoSQL Datastores Enterprise-Ready 对于每一个关注用户体验的Web应用或移动应用而言,NoSQL内存数据库(例如开源的 Redis和Memcached)正逐步成为事实上的标准。
957 0
Tair分布式缓存
Redis很好用,相比memcached多了很多数据结构,支持持久化。但是在很长一段时间里,原生是不支持分布式的。后来就出现了很多redis集群类产品,Tair是其中胜出的优秀作品之一。 所以Tair的特性都是一些集群的特性,比如:容错、解决单点故障、跨机房管理、多集群管理、支持副本等。总而言之,是redis的高可用版本。
450 0
《深入分布式缓存》之“关于Tair哪些事儿”
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。
1913 0
Beyond the Cache ——阿里云Tair云内存数据库场景解读
三大类型,从性能到性价比有不同的产品排布
3469 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
阿里云内存数据库Tair
立即下载
分布式高并发缓存6.0
立即下载
高并发分布式缓存Redis6.0
立即下载