我只是在想,现在是common to have enough RAM on your database server to cache your complete database了,为什么几年前很流行的memory database(例如TimesTen,也可以参见Wikipedia page)中的专家没有更多地使用呢?
似乎随着时间的推移,基于磁盘的数据库的使用率越来越低,例如,现在大多数应用程序都构建在传统的Rational数据库之上.我的预期正好相反,因为RAM对很多服务器来说都是免费的.
我是这样问的,因为我刚刚阅读了堆栈溢出体系 struct ,页面上写着
这很重要,因为堆栈
但我认为,如果使用"指针"和"集合"而不是普通的btree,这不会是一个问题.Btree非常聪明,可以绕过磁盘访问速度的限制,例如,它们通过交换CPU使用率来降低磁盘使用率.然而,我们现在有了这么多的对手.
但我们仍然需要数据库,就像做你们自己的一样
- 锁定
- 死锁检测
- 事务日志(log)
- 正在恢复
- 等
是很难的.
@S.Lott,因为我们都花了这么长时间 Select 索引、避免联接和调查数据库性能问题.一定有更好的办法.几年前,我们被告知"在内存数据库中"是更好的方法.所以在我开始使用一个ETC之前,我想知道为什么其他人没有更多地使用它们.
(我本人不太可能使用TimesTen,因为它的价格很高($41,500.00 / Processor美元),而且我不喜欢与Oracle销售人员交谈——我宁愿花时间编写代码.)
See also:个
- Alternative to the TimesTen in memory database个
- Has anyone published a detailed comparison between different in-memory RDBMSs?
Update:
我在LONG年前就问过这个问题,现在Microsoft SQL Server已经有了"In-Memory OLTP",这是一个集成到SQL Server引擎中的内存优化的数据库引擎.这并不便宜,但对于某些工作负载来说似乎是very fast.