2

几年来,我一直被困在 MsSql/MySql 的世界中,我决定进一步扩展我的翅膀。目前我正在研究哪个 DBMS 擅长归档数据时所需的东西。例如。大量写入和低读取。

我已经看到了 NoSQL 十字军东征,但我有一个非常 RDBMS 的心态,所以我有点怀疑。

有人有什么建议吗?甚至任何指向此类东西的基准等的指针。

谢谢 :) 托马斯


编辑

既然有一个问题,我会尝试提供更多关于我在想什么的信息

我将在几台服务器上运行一项服务,这些服务器都将拥有它们的本地数据库。这些数据库将有大量的命中(1/1 读/写),所以我试图让它们尽可能地为空,以缩短查询时间。我最初的估计是该数据库中的任何行都不会超过 30 分钟。在这些服务中的每一个上运行一个归档数据库似乎是一种资源浪费,因此中央归档架构看起来更好。

我将尝试建立一个快速的网络架构

     ___________ ___________ ___________
    | 服务 1 | | 服务 2 | | 服务 3 |
     ------------ ------------ ------------
          |____________|_______________|
                   ____|____
                  | 存档 |
                   ---------

您可能知道,MsSQL 和 MySQL 仅在处理写入时垂直扩展(不确定它是否是 rdbms 的东西)。因此,我正在研究尽可能从该存档 DBMS 中获得最大性能。

4

4 回答 4

1

如果您归档的数据结构相对简单,您可以考虑直接归档到平面文件。适合写作,不适合阅读。在这个问题中有一些关于这个主题的讨论:平面文件数据库有什么好处吗?

否则,我会坚持使用 MySql 并确保它针对高写入/低读取使用进行了适当调整。

于 2010-06-08T15:51:36.040 回答
1

所以我试图让它们尽可能空,以减少查询时间

首先,查询速度与数据库大小不成正比,除非您只进行全表扫描。唯一索引查找与索引的深度成正比。从索引根块拆分到下一次拆分可能会有数百万额外的行。事实上,删除行以保持数据库“尽可能空”实际上可能不会使数据库更小。在重建索引之前,您可能会拥有非常稀疏的分支和叶块,从而使索引扫描花费的时间越来越长。

我不确定 MSSQL 或 MYSQL 如何填充部分空白页面,但您可能根本看不到删除带来的任何空间节省。

在 Oracle 中,我建议分区和删除删除,以便实际保持数据库一定大小。

但是我说这一切是为了鼓励你展开你的翅膀,使用内存数据库来满足你的服务器使用,而不是专注于你的存档使用。在这种情况下,您没有说任何让我认为 RDBMS 不是归档的最佳解决方案的内容。

于 2010-06-08T16:58:46.383 回答
0

Oracle 或 PostGresSQL 也是非常强大的 DBMS。但是,如果您已经了解并使用过 MySQL,为什么要改变呢?MySQL 是免费的、高性能的、有据可查的......

但是如果你主要有写操作而不是很多读操作,并且你不再需要常用的 DBMS,那么你可能会考虑基于文档的 DBMS

我建议你看看eXist dbMongo DB

希望这可以帮助!

于 2010-06-08T13:34:54.133 回答
0

您可以使用适合的数据库基准软件(GNU GPL)查看不同数据库的读/写性能结果 找到一些答案。

于 2010-06-12T17:27:17.087 回答