对于什么类型的需求,您会选择 Apache Derby(或 Java DB)而不是 MySQL(反之亦然)?我环顾四周,人们只是比较两者,但没有人谈论何时考虑每一个。我正在使用 Glassfish + Java/Restlet + MySQL 开发一个基于 Web 的应用程序。
我预计该系统大约有 100-200 个用户,在给定时间大约有 30-50 个并发用户的负载 - 大多数情况下。
有人告诉我,如果我希望使网络应用程序可下载/可分发,请查看 Derby。但这是我使用它的唯一原因吗?它适合网络应用程序吗?有人用过吗?您的经历是什么?您何时会选择其中一种? (大多数关于比较的讨论早于 MySQL v5,当时它不支持存储过程、触发器等,但现在情况已不再如此)。
我可以理解带有发送请求的 Web 服务器的独立数据库服务器模型,但是这个模型如何随着嵌入式数据库而改变?或者在网络配置中默认使用 Derby?
Why are Derby and MySQL您考虑的唯一 RDMBS?如果你说Derby,你应该检查一下HSQLDB, H2, SQLite以及。如果你说MySQL,你应该检查一下Postgres以及(它有更多的功能)。
这只是一些免费 RDBMS 的名称。当然,正如查理已经说过的那样,还有很多其他因素和很多理由选择任何一种方式。查看 Wikipedia 上的这个(IMO 优秀)比较页面,您可以在其中找到任何 RDBMS 的优点和局限性:
http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems
就您对 Web 应用程序“可下载”的要求而言,您当然可以在 Web 应用程序中嵌入 RDBMS(Derby、H2、HSQLDB 中的任何一个)。但您也可以将 MySQL 或 Postgres 或任何集成配置为可配置,并向下载者提供有关如何自行设置 Web 应用程序的说明。毕竟,当您使用容器配置的DataSource
对于您的 web 应用程序,此配置可以轻松完成。
现在,即使您认为使用嵌入式数据库开发 Web 应用程序可能更容易,您也应该始终领先一步。诸如此类的问题:
- 您是否能够直接连接到该数据库,以便轻松纠正数据不一致问题? (这会发生在我们所有人身上)
- 您能够轻松更改架构吗?
- 您能够轻松备份数据吗?
- 等等...还有更多维护问题
由于您的评论表明您的数据随着时间的推移而增加,并且应该持续存在,因此我不会选择嵌入式版本,而是将数据与应用程序分开。请注意,这并不会将 Derby 从您的应用程序设计中排除。这只是意味着您必须将 Derby 作为独立服务器运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)