Derby 还是 MySQL 或者...?

2024-04-17

对于什么类型的需求,您会选择 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(使用前将#替换为@)

Derby 还是 MySQL 或者...? 的相关文章

随机推荐

  • React Navigation - 从选项卡栏打开模式

    使用 React Navigation 6 我将底部选项卡设置为我的主导航器 export function TabNavigator const getColor focused color gt focused palette blue
  • 404 尝试将 Ocelot 中的上游路径路由到下游路径

    我在将传入的 http 请求转发到下游路径时遇到此警告 错误 Ocelot DownstreamRouteFinder Middleware DownstreamRouteFinderMiddleware 警告 requestId 8000
  • SAPUI5 oTable 一行作为链接,其他作为文本视图

    目前我有一个 sapui 表 我希望其中一行是链接 所有其他行应该是文本视图 我的问题是 构建表是基于列 oTable addColumn new sap ui table Column label new sap ui commons L
  • vue.js 中的 $http.get() 与 axios.get() 有什么区别?

    我有点困惑理解之间的主要区别 http get and axios get 我查阅了很多资源 但没有得到满意的答案 有人可以帮我吗 http 是一个全局变量 可能是您在 vuejs 项目中定义的 请在您的项目中搜索 http 您可能会发现它
  • 如何在运行时知道 POJO 的 ID (@GenerateValue)

    我有一个表格可以填写 POJO 名为Father 在里面 我有一个FotoFather field 当我保存一个新的 Father 时 我会自动保存 FotoFather 对象 使用 Hibernate ORM 模式 FotoFather
  • 扫描 iPhone 范围内的蓝牙设备需要多长时间?

    我知道 iPhone 蓝牙功能要到 3 0 才能通过 SDK 访问 但是需要多长时间才能找到该区域的设备 它取决于该区域的设备数量吗 如果范围内有大约 5 个设备 扫描发现所有设备是否需要花费 30 秒的时间 我知道有很多未知因素 但我试图
  • 如何设置 pygame.transform.rotate() 的枢轴点(旋转中心)?

    我想围绕中心以外的点旋转矩形 到目前为止我的代码是 import pygame pygame init w 640 h 480 degree 45 screen pygame display set mode w h surf pygame
  • Xdebug v3.0.2 与 PHP v8.0.0

    我刚刚使用 XAMPP v3 2 4 迁移到 php v8 0 0 但 Xdebug 不起作用 执行不会在断点处停止 我的安装说明 Download php xdebug 3 0 2 8 0 vs16 x86 64 dll Move the
  • Symfony:解析 web.xml 时出现 InvalidArgumentException

    最近 我将 Symfony 系统移动到另一台服务器 从那时起就出现错误 技术细节是 Windows Server 2012 上的 apache 2 4 服务器 apache可以通过本地网络访问的文件服务器 当我移动 Symfony 页面时
  • ERC721:转账调用者不是所有者也不是批准的

    我有一个 nftToken 合约 可以将代币铸造到 msg sender 然后我在市场合约中有一个函数 可以将 nft 从所有者转移到市场合约 但是 我收到一条错误消息 ERC721 转账调用者不是所有者也不是批准的 这是我的 nftCon
  • ReplaceAll 性能秘诀是什么? [HTML 转义]

    我花了一些时间寻找转义 html 字符串的最佳方法 并发现了一些相关讨论 讨论1 https stackoverflow com questions 24816 escaping html strings with jquery 讨论2 h
  • Android获取recyclerview项目和位置上选定的文本部分

    在我的适配器中 可以选择显示弹出窗口的项目 例如copy cut或等等 现在我怎样才能获得所选的文本部分recyclerView项目和位置 我阅读了更多有关找到此解决方案的文档 但我不知道该怎么做 这是我的适配器 我想获取文本和位置的选定部
  • Python .localize 和 tzinfo 之间的日期时间差异

    为什么这两行会产生不同的结果 gt gt gt import pytz gt gt gt from datetime import datetime gt gt gt local tz pytz timezone America Los A
  • UICollectionView cellForItemAt indexPath 在 iOS 10 中跳过行索引

    I have UICollectionView具有水平滚动和分页功能 当我第一次滚动到下一页或上一页或从左到右更改滚动方向时 indexPath row 的值cellForItemAtIndexPath改变了 3 而不是 1 然后它就可以正
  • css 100%宽度div不占据父级的整个宽度

    我在一个页面上有两个 div 一个带有背景的网格容器和一个需要放置在另一个网格中心的内部网格 我的CSS html body margin 0 padding 0 width 100 grid container background f8
  • 什么是“3D语法”?

    在编写 Racket 宏的上下文中 3D 语法 是什么意思 这句话我听过好几次了 包含一次对宏的引用I正在写作 但那是不久前的事了 我修复了它 现在我不记得我最初做错了什么 另外 是 3D 语法吗always坏的 或者是像eval 如果你认
  • 是否可以将 CSS Scroll Snap 应用于 HTML 标签而不是 Body 标签

    CSS Scroll Snap 允许浏览器捕捉滚动到容器中的元素 要将相同的逻辑应用于垂直页面滚动 我发现它必须应用于而不是 见下文 这不是一个主要问题 但它确实有效地创建了一个滚动区域而不是使用窗口滚动 虽然这看起来不错 但它有一些副作用
  • 在 Xcode Interface Builder 中对场景进行排序

    所以我不知道该怎么称呼它 但它是 Xcode 中 Storyboard Editor 左侧的那个栏 显示所有不同的场景 我喜欢使用故事板 但我对它们最大的不满是场景以完全随机的方式组织在该列表中 每次我向故事板添加新的视图控制器时 它都会被
  • 阻止 Chrome 扩展程序在我的网站上运行

    作为一名网络开发人员 有什么方法可以阻止用户的 Chrome 扩展应用到我的网站吗 即标题 元标记等等 此外 如果有的话 是否还有一种方法可以将特定扩展列入白名单 这是不可能的 在网络服务器端 您只能控制浏览器允许您控制的内容 简单来说 这
  • Derby 还是 MySQL 或者...?

    对于什么类型的需求 您会选择 Apache Derby 或 Java DB 而不是 MySQL 反之亦然 我环顾四周 人们只是比较两者 但没有人谈论何时考虑每一个 我正在使用 Glassfish Java Restlet MySQL 开发一