将 MySQL 连接器/MXJ 用于应用程序的优点/缺点/替代品是啥

Posted

技术标签:

【中文标题】将 MySQL 连接器/MXJ 用于应用程序的优点/缺点/替代品是啥【英文标题】:What are the pros/cons/substitutes for using MySQL Connector/MXJ for an application将 MySQL 连接器/MXJ 用于应用程序的优点/缺点/替代品是什么 【发布时间】:2012-03-07 19:56:54 【问题描述】:

我最近使用 Play Framework 和 mysql Connector/MXJ 制作了一个有趣的应用程序,以制作一个带有数据库的完全可移植的 Web 服务器,独立于当前安装的任何软件(包括 Java)。

我对 MXJ 和桌面应用程序领域(而不是直接的 web 应用程序)还是新手,所以我想知道是否有其他更好的方法来存储/访问比嵌入式 MySQL 更大的数据。我会这么认为,因为似乎没有多少人使用 MXJ。它本质上只是以各种形式为多个操作系统和平台打包mysqld.exe。它在自己的线程中运行,并将其数据存储在您提供的任何目录中。

对于一个经常分析和搜索大块(100MB 到 5GB)数据的应用程序,还有哪些其他(快速)选项,或者我是否有理由因为我的 webapp-lazy 使用 MySQL?

【问题讨论】:

【参考方案1】:

独立于任何当前安装的软件(包括 Java)。

如果您正在为桌面应用程序寻找嵌入式数据库,那么您可以选择SQLITE。但是,使用 MySQL 或 SQLite 各有利弊

SQLite:

    更容易设置 非常适合临时(测试数据库) 非常适合快速开发 非常适合嵌入到应用程序中 没有用户管理 没有很多性能特征 不能很好地扩展。

MySQL:

    设置起来更加困难/复杂 性能调优的更好选择 适合生产数据库 如果调整得当,可以很好地扩展 可以管理用户、权限等

您可以找到更多关于何时使用 SQLite 的信息here

更新:我发现HSQLDB 和here 是它的测试结果。 HamsterDb 是另一种选择。

【讨论】:

我认为分析得很好。是的,我使用过 SQLite,我喜欢它的易用性和便携性。我认为在这些情况下它会胜出,但每当我的数据超过几 MB 时,它的性能就会迅速下降。 好吧,我遇到了HSQLDB 和here 是它的测试结果。 HamsterDb 是另一种选择。 谢谢,这些是我一直在寻找的建议。 我想说把这些和 sqlite 一起放在你的答案中【参考方案2】:

如果您的应用是单用户和基于桌面的,您真的需要数据库吗?也许将大文件简单地写入本地文件系统然后加载然后通过网络层更快。如果您的应用程序非常复杂,您可以使用嵌入式数据库来存储您的域和配置,但如果不是,您可以避免使用 db + sql + o/r-mapping 等等。

【讨论】:

嗯,它不是单个用户。这个特定的应用程序是一个网络服务器,可以放在任何完整的操作系统上,包括平板电脑(不是 iPad 或 android)。基本上是用于定制 wi-fi 设备的便携式 Intranet。但是,除了这个特定的应用程序之外,我只是想找到最好的通用解决方案来频繁地访问/排序/分析/更改/比较大量数据。我想只使用一个文件系统,但为了快速比较而将几个 300 MB 的文件加载到内存中似乎不是一个好主意。 主要是来自高采样传感器的整数和长整数,例如陀螺仪、gps 和加速度计。 你是对的,因为分析和比较这将是一团糟。我想在您的大表中具有明确定义的索引的独立数据库将是最好的主意。 只是为了好奇,“通过网络层加载它们”是什么意思? 如果您使用数据库驱动程序,它将通过网络访问您的数据,还是有其他方法?即使您使用环回适配器。还是我错了?

以上是关于将 MySQL 连接器/MXJ 用于应用程序的优点/缺点/替代品是啥的主要内容,如果未能解决你的问题,请参考以下文章

无法将 MySQL 连接用于实体框架 6

将 SignalR 用于桌面应用程序是不是正确?

MySQL 索引

mysql Connector J 版本 8 不适用于 JPA eclipse 实体生成

我希望我的Android应用程序将数据同步到MYSQL以用于我的在线ERP

MySql连接空闲8小时自动断开的原因及连接池配置方法