我应该使用哪种RDBMS?


1

我开发了一个高速交易服务器,用于通过互联网传输数据,因此我不需要依赖像MySQL这样的数据库实现来提供此功能。这开启了使用哪个SQL版本的问题?

我真的很喜欢SQLite,但我不相信它是工业实力还是 我喜欢的是它在资源上的轻量级。

8年前我厌恶MySQL,但现在它显然是工业实力和我的合作伙伴使用它,所以它是服务器端的显而易见的选择。如果我使用它,我将通过“localhost”连接到已安装的服务器(Windows服务)。我关心的是内存使用情况。

我不会将结果集加载到内存中,但我注意到第一个连接的大约6Mb。我希望随后的连接不是额外的6MB!

如果我使用libmysqld.dll嵌入式libarary,那么每个新连接都会将嵌入式客户端/服务器代码的新实例加载到内存中吗?我们假设,因为每个进程都有自己的进程内存...

无论如何,手册指出,当使用libmysqld嵌入式服务器时,内存的好处基本上在逐行检索结果时丢失,因为“随着检索到的每一行都增加,直到调用mysql_free_result()。“ http://dev.mysql.com/doc/refman/5.1/en/mysql-use-result.html

这意味着我必须使用已安装的服务。但是,这与嵌入式服务器一样快吗?

是否有任何其他低成本的口味具有高可靠性?

3

与其他数据库相比,SQLite用于更多的应用程序。 (需要引用)。

MySQL有一些问题,就像它不尊重外部完整性约束。

我目前是PostgreSQL的粉丝,这也是免费提供的(并且,我认为如果你阅读MySQL的许可证,事实上证明它具有用于商业用途的更合适的许可证)。它似乎比SQLite更高的性能,这可能与它在SMP机器上运行有关,并可用于不同的线程。它似乎也相当稳固。

  0

仅供参考,在MySQL中使用InnoDB存储引擎时,支持外键约束。自从至少3.23版本以来,InnoDB已与MySQL捆绑在一起,InnoDB将成为MySQL 5.5中的默认存储引擎。 15 7月. 102010-07-15 19:32:27


1

不好意思迂腐,但标题应该是“哪个RDBMS?” - 它措辞的方式与“哪个Java?”一样有意义。或“Which Internet?”...