当前位置:  开发笔记 > 数据库 > 正文

我应该何时考虑使用内存数据库以及需要注意的问题?

如何解决《我应该何时考虑使用内存数据库以及需要注意的问题?》经验,为你挑选了3个好方法。

我只是认为现在通常在数据库服务器上有足够的RAM来缓存你的完整数据库为什么内存数据库中的专家 (例如TimesTen,另见维基百科页面)几年前风靡一时不被使用更多?

似乎随着时间的推移,没有更少的基于磁盘的数据库被使用,例如,现在大多数应用程序都建立在传统的理性数据库上.我原本期望相反,因为RAM已经接近很多服务器的免费.

我问这个问题,因为我刚刚阅读了堆栈溢出架构,页面上写道

这很重要,因为Stack Overflow的数据库几乎完全在RAM中,并且连接的成本仍然太高.

但是,如果使用"指针"和"集合"而不是普通的btree,我认为这不会是一个问题.Btree非常聪明地限制磁盘访问速度,例如它们交换CPU使用以减少磁盘使用.但是我们现在有匹配ram.

但我们仍然需要数据库,就像做自己的一样

锁定

死锁检测

交易记录

恢复

等等

很难.

@ S.Lott,鉴于我们都花了这么长时间选择索引,避免加入和调查数据库性能问题.肯定有更好的办法.几年前,我们被告知"内存数据库"是更好的方法.所以在我开始使用其他之前,我想知道为什么其他人不再使用它们.

(我不太可能自己使用TimesTen,因为价格很高(41,500.00美元/处理器)而且我不喜欢和Oracle销售人员交谈 - 我宁愿花时间编写代码.)

也可以看看:

内存数据库中TimesTen的替代品

有没有人发布不同的内存RDBMS之间的详细比较?

更新:

我问这个问题一个的时间以前,这几天的Microsoft SQL Server具有" 在内存OLTP ",也就是集成到SQL Server引擎内存优化的数据库引擎.它并不便宜,但对某些工作负载来说似乎非常快.



1> 小智..:

没人真正回答这个问题"我应该何时考虑使用内存数据库以及需要注意的问题是什么?" 所以我会试一试.

在下列情况下,您应该考虑使用内存数据库:1.目标系统有要管理的数据,但没有持久性介质2.持久性数据库无法满足性能要求

对于#1,请考虑机顶盒(STB)中的电视指南.低端STB(即没有DVR功能的STB)没有持久存储,不需要持久存储.但是,一个400频道,14天电视指南的数据库是非常重要的.这里也有一个性能要求,因为数据从转发器转盘高速到达,这是"捕获它或等到转盘再次出现"的情况.但是没有必要坚持下去.我们都看到了这一点; 当您在家中断电时,当电视机返回电视指南时"很快就会提供",因为它是从发送应答器或有线电视前端进行配置的.网络路由器具有相同的特征:没有持久存储,需要快速,并且数据库可以从外部源(网络上的对等路由器,在这种情况下,重新填充路由表)进行配置.

有无数的例子:#2:军事系统中的实时目标,高频交易系统等等.

关于问题的第二部分,"需要注意的问题":有很多.

如果您需要只有内存数据库可以提供的性能,请确保您正在评估真正的内存数据库.缓存持久性数据库是不一样的.在RAM驱动器中抛出持久性数据库是不一样的.使用内存数据库固有地执行事务日志记录(如TimesTen)是不一样的(即使您登录到/ dev/null).

确保您正在评估数据库系统,而不仅仅是缓存(例如memcache).数据库系统将支持具有ACID属性的事务,多个索引选项,支持并发访问等.

关于ACID:内存数据库系统不缺少'D'(持久性).它只需要在上下文中采取.只要存储在其中的媒体是持久的,持久数据库中的事务就是持久的.对于内存数据库也是如此.在任何一种情况下,如果您关心耐久性,最好备份.



2> lomaxx..:

趋势似乎是积极缓存并使用数据库填充缓存.无论数据库在哪里,连接仍然很昂贵,因此首选项似乎是连接一次并将结果缓存为Memcached或Velocity.

仍然存在内存数据库并且它们被使用,但它取决于您想要使用它们的上下文.例如,SQLite通常在测试数据层时用作内存数据库.



3> Stefan Stein..:

最有可能的是,没有成熟的内存数据库产品可以用作经典数据库的完全替代品.

关系数据库是一个非常古老的概念.虽然有很多方法可以推进和开发新技术,例如.面向对象的数据库,关系数据库并没有真正改变他们的概念.不要指望事情变化太快,因为数据库在过去十年或十五年甚至更长时间内变化不大.

我认为,技术的发展并不像人们想象的那么快.新概念需要数十年才能成熟和建立.首先是数据库技术,其中成熟度比其他任何东西都重要得多.

在十年或二十年中,数据库可能与现在不同.如果内存数据库是未来 - 今天没人能说出来 - 他们只需要更多的时间来开发.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有