我只是认为现在您的数据库服务器上通常有足够的 RAM 来缓存您的完整数据库,为什么几年前风靡一时的内存数据库专家 (例如TimesTen,另见Wikipedia 页面)没有被使用更多的?
似乎随着时间的推移,非基于磁盘的数据库的使用越来越少,例如,现在大多数应用程序都建立在传统的理性数据库之上。我本来预计会出现相反的情况,因为许多服务器的 RAM 越来越接近免费。
我在问这个,因为我刚刚阅读了 stack-overflow-architecture 并且页面上说
这很重要,因为 Stack Overflow 的数据库几乎完全在 RAM 中,而且连接的成本仍然太高。
但我认为如果使用“指针”和“集合”而不是普通的 btree,这将不是问题。Btree 是一种非常聪明的对磁盘访问速度进行限制的方法,例如,它们交换 CPU 使用率以减少磁盘使用率。但是我们现在有这么匹配的 ram。
但是我们仍然需要数据库,就像自己做的那样
- 锁定
- 死锁检测
- 事务日志
- 恢复
- ETC
非常难。
@S.Lott,鉴于我们都花了很长时间选择索引、避免连接和调查数据库性能问题。肯定有更好的办法。几年前,我们被告知“内存数据库”是更好的方法。所以在我开始使用一个 etc 之前,我想知道为什么其他人没有更多地使用它们。
(我自己不太可能使用 TimesTen,因为它价格高(41,500.00 美元/处理器)而且我不喜欢与 Oracle 销售人员交谈——我宁愿花时间编写代码。)
也可以看看:
更新:
很久以前我问过这个问题,现在 Microsoft SQL Server 有“内存中 OLTP ”,这是一个集成到 SQL Server 引擎中的内存优化数据库引擎。它并不便宜,但对于某些工作负载来说似乎非常快。