适用于Linux/Windows的轻量级SQL服务器?

6

虽然SQLite作为单用户数据库很好用,但是如果多个用户同时使用,就会有风险。MySQL、Firebird、PostgreSQL等更难部署,只是我的需求过于夸张了。

理想情况下,我希望有一个紧凑的服务器,并且以单个EXE文件的形式运行在低性能的硬件上(例如128MB RAM,256MB闪存RAM),这个服务器应该像SQLite一样容易使用,并且可以在Linux上使用(也要支持Windows,这样我可以在客户端使用相同的代码,以防顾客喜欢普通的PC)。

您是否知道符合这些要求的应用程序?


1
如果你只有256MB的存储空间,为什么需要一个SQL数据库? - alex
您根据什么依据断言SQLite在多用户使用时存在风险?只是好奇... - t3rse
没有一个服务器来处理并发访问,将SQLite文件共享给多个主机并允许用户进行更改是有风险的。 - Gulbahar
1
但是SQLite不允许并发访问。它在连接期间锁定文件,因此一次只能有一个用户访问SQLite文件。我猜你正在寻找一个允许并发访问的解决方案? - eksortso
1
我的意思是从远程计算机访问SQLite绝对不安全。如果没有可用的基于网络的解决方案,我将编写自己的包装器。谢谢。 - Gulbahar
4个回答

4

试用一下Firebird吧。它是跨平台且轻量级的。数据库由单个文件组成。


2

试试H2,它是一个基于Java的SQL数据库引擎.....

  • 非常快速,开源,JDBC API
  • 嵌入式和服务器模式;内存数据库
  • 基于浏览器的控制台应用程序
  • 占用空间小:约1.5 MB的jar文件大小

1
你可以尝试看看 Apache Derby(http://db.apache.org/derby/)。它是Java编写的,因此具有可移植性,并且绝对轻量级。

4
虽然Java具有“可移植性”,但除非您的应用程序已经使用Java,否则每个Linux管理员都会因为需要Java才能运行数据库而讨厌您。例如,某些grsecurity内核选项可以使系统更加安全,但也会阻止Java虚拟机的运行。 - ThiefMaster

0

另一个选择是HSQLDB。它很轻便,完全使用Java编写并支持多线程。我在个人项目中使用过,效果非常好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接