`
titan
  • 浏览: 113078 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

常用内存数据库介绍(三)

阅读更多
(上接内存数据库介绍4.1SQLite)
4.1.2   哪些场合适合使用其他的关系型数据库管理系统(RDBMS

·         客户端/服务器程序

如果你有许多的客户端程序要通过网络访问一个共享的数据库, 你应当考虑用一个客户端/服务器数据库来替代SQLite. SQLite可以通过网络文件系统工作, 但是因为和大多数网络文件系统都存在延时, 因此执行效率不会很高. 此外大多数网络文件系统在实现文件逻辑锁的方面都存在着bug(包括Unix windows). 如果文件锁没有正常的工作, 就可能出现在同一时间两个或更多的客户端程序更改同一个数据库的同一部分, 从而导致数据库出错. 因为这些问题是文件系统执行的时候本质上存在的bug, 因此SQLite没有办法避免它们.

好的经验告诉我们, 应该避免在许多计算机需要通过一个网络文件系统同时访问同一个数据库的情况下使用SQLite.

·         高流量网站

SQLite通常情况下用作一个网站的后台数据库可以很好的工作. 但是如果你的网站的访问量大到你开始考虑采取分布式的数据库部署, 那么你应当毫不犹豫的考虑用一个企业级的客户端/服务器数据库来替代SQLite.

·         超大的数据集

当你在SQLite中开始一个事务处理的时候(事务处理会在任何写操作发生之前产生, 而不是必须要显示的调用BEGIN...COMMIT), 数据库引擎将不得不分配一小块脏页(文件缓冲页面)来帮助它自己管理回滚操作. 1MB的数据库文件SQLite需要256字节. 对于小型的数据库这些空间不算什么, 但是当数据库增长到数十亿字节的时候, 缓冲页面的尺寸就会相当的大了. 如果你需要存储或修改几十GB的数据, 你应该考虑用其他的数据库引擎.

·         高并发访问

SQLite对于整个数据库文件进行读取/写入锁定. 这意味着如果任何进程读取了数据库中的某一部分, 其他所有进程都不能再对该数据库的任何部分进行写入操作. 同样的, 如果任何一个进程在对数据库进行写入操作, 其他所有进程都不能再读取该数据库的任何部分. 对于大多数情况这不算是什么问题. 在这些情况下每个程序使用数据库的时间都很短暂, 并且不会独占, 这样锁定至多会存在十几毫秒. 但是如果有些程序需要高并发, 那么这些程序就需要寻找其他的解决方案了.

 

 

 

方面

具体要求

必要条件

详细描述

License

是否收费

 

免费使用

是否开源

 

开源

是否有技术支持

 

主要是社区支持,如果需要专业支持需要购买

商业目的的分发版本是否仍要收费

免费

其他

 

 

性能

数据容量支持100000条以上记录

支持

并发查询处理能力

 

SQLite在并发(包括多进程和多线程)读写方面的性能一直不太理想。数据库可能会被写操作独占,从而导致其它读写操作阻塞或出错。

查询速度

 

修改速度

 

平台支持

32/64

 

全部支持

Linux/window/UNIX/mobile

 

支持Linux/Mac OS/Windows

运行方式支持

支持嵌入式

 

支持

支持独立运行

 

不支持

连接方式支持

支持ODBC

 

默认不支持,必须通过第三方的ODBC驱动

支持JDBC

 

默认不支持,必须通过第三方的JDBC驱动

支持内存访问

 

通过c接口(专用API

支持网络访问

 

不支持

SQL支持

支持SQL

支持

支持IndexTrigger

ConstrainsViews

 

支持,有资料说其不支持外键约束。

管理界面

支持管理界面

 

支持CLI

管理界面友好程度

 

较差

 

4.2           Altibase

Altibase™内存数据库管理系统(DBMS),内存数据管理系统的最新技术,是一个在事务优先的环境中提供高性能和高可用性的软件解决方案。Altibase提供极限性能、容错能力和事务管理的方便性,特别是在通信、网上银行、证券交易、实时应用和嵌入式系统领域。Altibase能够最大限度的发挥数据库服务系统的潜力,使用Altibase能大大增强您公司的数据服务器的处理能力。

Altibase™内存DBMS为需要容错服务的系统提供实时数据库复制的功能。采用Altibase数据库复制的系统可以实现高性能、高可用性、数据库一致性、负载平衡和系统可伸缩性。如果您希望您的业务能够实现最大的成功,请在您的事务优先的系统中使用我们的Altibase数据库复制解决方案。

资料比较少,且需要商业License,没有详细去研究

4.3           Oracle 内存数据库系列 Berkeley DB TimesTen

Oracle是最重要的商业数据库产品提供商,它也有内存数据库的产品系列:主要就是Oracle Berkeley DB Times Ten.前者是只支持嵌入式内存数据,后者是独立的内存优化数据库。

4.3.1     Oracle Berkeley DB

    Oracle Berkeley DBOracle 收购了开源数据库厂商后推出的产品,其前身是Berkeley DB。它有开源版本,但且对于开源软件免费。商业版本是要付费。

Oracle Berkeley DB 系列的可嵌入开源数据库为开发人员提供了无需管理的快速、可靠的本地持久性。Oracle Berkeley DB 系列通常部署为前沿数据库,为不需要 SQL 的应用程序用例提供很高的性能、可靠性、可伸缩性以及可用性。

Oracle Berkeley DB 产品系列

     Berkeley DB事务处理式存储引擎,用于基本键/值数据结构中的非类型化数据新增!版本 4.7 现已推出

     针对 Java 环境优化的纯 Java Berkeley DB — 新增!版本 3.3

     Berkeley DB XML 原生 XML 数据库,可基于 XQuery 访问容器中存储的文档,并根据其内容进行索引新增!版本 2.4 现已推出

 

 

4.3.2     Oracle TimesTen

Oracle 内存数据库 TimesTen 是一个针对内存进行了优化的关系数据库,它为应用程序提供了当今实时企业和行业(如电信、资本市场和国防)所需的即时响应性和非常高的吞吐量。Oracle 内存数据库 TimesTen 作为独立或嵌入式数据库部署在应用层中,利用标准的 SQL 接口对完全位于物理内存中的数据库进行操作。它也可以用作 Oracle 数据库的内存中数据库缓存,以改进用户应用程序的响应时间和吞吐量。

      

 

4.4           eXtremeDB

eXtremeDB内存式实时数据库是为实时系统及嵌入式系统而特别设计的数据库。与同类产品不同,eXtremeDB不是通过 对企业数据库面向实时嵌入式应用进行剪裁而来;而是总结了30年来McObject公司在编译器、实时编程、数据管理、内核级驱 动软件等领域的经验,面向实时嵌入式应用从头开发的最新实时数据管理技术。

eXtremeDB满足了您对实时数据库的一切期待:高级数据定义语言、并行访问、基于交易及灵活的索引… …等等。不仅如此,出乎您的意外,eXtremeDB在紧凑的引擎中还提供诸如事件触发、目标历史等等功能。

eXtremeDB嵌入式数据库满足更多的实时开发的要求。

·                     最快的内存数据库。

·                     极小尺寸和极小的内存消耗

·                     多种索引支持

·                     高可用性-组合选项

·                     非常灵活的数据存储: 内存式,磁盘式或混合式

·                     多种应用接口: 两种 SQL 两种更快的原始接口

·                     几乎牢不可破 -

 

又一个商业内存数据库产品,这个特点是实时数据库,号称最快。

 

(下接 4.5 H2 Database)

  • 大小: 11.9 KB
分享到:
评论

相关推荐

    常用内存数据库介绍常用内存数据库介绍.doc

    常用内存数据库介绍常用内存数据库介绍

    常用内存数据库介绍

    常用内存数据库介绍

    常用内存数据库介绍.pdf

    常用内存数据库介绍.pdf

    常用内存数据库的比较

    什么是内存数据库,常用内存数据库,SQLite最佳试用场合,哪些场合适合使用其他的关系型数据库,内存数据库之比较,性能测试

    常用内存数据库比较

    JAVA常用开源内存数据库比较。让你能很轻松地在众多内存数据库中做出最好选择!

    内存数据库

    实现词法分析和语法分析的内存小容量数据库,主要用于学习编译原理

    内存数据库h2.jar

    IT资料 常用软件 内存数据库 jar包

    内存数据库和临时数据库

    一、内存数据库:  在SQLite中,数据库通常是存储在磁盘文件中的。然而在有些情况下,我们可以让数据库始终驻留在内存中。常用的一种方式是在调用sqlite3_open()的时候,数据库文件名参数传递":memory:",如:  ...

    SQLite 内存数据库学习手册

    一、内存数据库:  在SQLite中,数据库通常是存储在磁盘文件中的。然而在有些情况下,我们可以让数据库始终驻留在内存中。最常用的一种方式是在调用sqlite3_open()的时候,数据库文件名参数传递”:memory:”,如: ...

    Informix数据库常用命令介绍

    Informix数据库服务器提供了...onmode 改变方式和共享内存 onparams 修改日志配置参数 onspaces 修改blobspace或Dbspace onstat 监控的运行 ontape 日志登录,archive创建和数据重装 onunload 以页为单位传送二进制数据

    SQLite教程(十):内存数据库和临时数据库

    一、内存数据库:  在SQLite中,数据库通常是存储在磁盘文件中的。然而在有些情况下,我们可以让数据库始终驻留在内存中。最常用的一种方式是在调用sqlite3_open()的时候,数据库文件名参数传递”:memory:”,如: ...

    h2数据库功能介绍资料

    h2原版英文资料!h2是基于java的内存数据库,pdf主要是h2数据库功能介绍和说明,常用命令行用法,通脚本操作数据库!备份恢复说明!数据库升级

    Ado.Net常用数据库接口类

    SQL Server 的.NET 数据... 使用SqlDataAdapter,可以填充驻留在内存中的DataSet可用于查询和更新数据库。本文档包括了常用的数据库接口类,所有字段的说明和示例代码,一份文档足以让你掌握Ado.Net的常用编程技巧。

    数据库资料集合(包含了DB2,ORACLE,SYSDBASE和内存数据库的操作指南和SQL集合)

    个人搜集的包括了3大主流数据库的入门介绍,编程指南,常用sql集合等多方面内容。

    大数据常用数据库汇总.pdf

    (7)Aerospike:Aerospike数据库是⼀个键值存储,⽀持混合内存架构,通过强⼀致性和可调⼀致性保证数据的完整性。 3、⽂档数据库:MongoDB、CouchDB、Perservere、Terrastore、RavenDB等,下⾯简单介绍⼏个 (1)...

    常用开源数据库连接池 文档和源码及jar包

    单独使用dbcp需要3个包:common-dbcp.jar,common-pool.jar,common-collections.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库...

    达梦数据库常用系统视图及查询语句.pdf

    v$lock:查看当前数据库中锁的信息 v$mem_pool:显⽰所有的内存池信息 V$deadlock_histor::记录死锁的历史信息 V$TABLESPACE:显⽰表空间信息,不包括回滚表空间信息 V$TRX:显⽰所有活动事务的信息。通过该视图...

    Oracle数据库学习指南

    19.Delphi 3_0中连接数据库的三种方式 20.远程数据库的访问 21.监控数据库性能的SQL 22.简单实现数据库表空间的备份或迁移 23.简析REDO LOGFILE 24.理解和使用Oracle 8i分析工具-LogMiner 25.哪些初始...

Global site tag (gtag.js) - Google Analytics