我应该使用哪个DB服务器?

时间:2010-05-15 06:58:04

标签: database

我必须为小型企业开发一个新的(桌面)应用程序。此业务目前具有包含数百万条记录的Access数据库。文件大小约为1.5 GB。老板告诉我,在这个数据库上搜索非常慢。数据库由一个包含大约20个字段的表组成。

我也认为整体数据库设计不是很好。我想使用另一个带有新设计的数据库服务器来提高性能和效率。

考虑到这是一个相对较小的业务,我不想花太多钱购买数据库许可证,所以我想问你会做什么。

  • 继续使用Access,可能以某种方式改进和优化数据库
  • 购买数据库服务器许可证(在这种情况下,哪一个?)
  • ? (任何想法?)

15 个答案:

答案 0 :(得分:6)

SQL Server ExpressMySQLPostgreSQL等内容免费提供,无需购买许可证。

为了提高搜索速度,您可能还需要查看为表格定义的索引,搜索的确切内容等等。

答案 1 :(得分:3)

第2次对Firebird的推荐。我们已经使用它大约5年了,从来没有遇到过问题。跨平台,嵌入式和服务器部署......精彩。哦,和啤酒一样自由。 Mozilla Public LIcense。

答案 2 :(得分:3)

把我作为Firebird的另一个建议。我们将其与我们的商业销售点产品一起使用。我们在超过1,000个站点安装了它,数据库大到40+千兆字节。它快速,稳定,简单,易于部署,无需管理。

答案 3 :(得分:2)

您可以使用SQL Server数据库替换Access数据库,该数据库可以很好地向前扩展。您可以使用免费的SQL Server Express,并支持最高4Gb的数据库。

答案 4 :(得分:1)

SQL Server Express。数据库大小最高可达10 GB。

答案 5 :(得分:1)

我热烈推荐MySQL。 Its sometimes free并且易于在Windows和Linux上安装。

还有许多很棒的免费工具来管理其内容,如表格,用户,索引等......

答案 6 :(得分:1)

SQL Server Express非常适合这种情况。 http://www.microsoft.com/express/database/

答案 7 :(得分:1)

您可以查看Firebird

Firebird是桌面应用程序的最佳数据库之一,并且总是免费的。

convert database访问firebird时存在一些工具。

答案 8 :(得分:1)

我会研究是否需要将大表拆分为较小的表(很少需要,但仍然存在)以及它上面的索引。对于数据库软件,我会推荐PostgreSQL。它是免费的,易于使用(我认为它很容易设置,尽管其他人不同),并且它对于企业应用程序来说足够快。

答案 9 :(得分:1)

我还建议Firebird

它的主要优势在于(从我的头脑中):

  • 嵌入式版本。您可以随应用程序一起发货 - 不需要单独的安装工具包,也不需要.NET依赖项等。

  • 稍后您可以无缝扩展到完整的客户端 - 服务器模型。无需更改代码。

  • 占地面积非常小

  • 整个数据库存储在一个文件中。与其他解决方案相比,部署更容易。

  • 你可以在任何你想要的平台上安装你的服务器:Windows,Linux,MacOSX等。当然,你可以让你的客户端也在同一个平台上,但既然你提到了Access,我想你有一个Windows应用

  • 无需服务器管理。它只是有效。

答案 10 :(得分:0)

我也推荐使用PostgreSQL(特别是作为MySQL的替代品)

答案 11 :(得分:0)

似乎没有人提及它,但甲骨文也在他们的数据库中进行免费的免费啤酒版本:Oracle Express Edition(又名XE)。它仅限于1个CPU,1GB RAM和4GB用户数据,但听起来足够大,适合您的应用。

至于您的数据库设计,只有一个表听起来更像电子表格而不是数据库应用程序。可能你有很多非规范化数据。将这些拆分为较小的重复数据删除表可能会加快某些查询速度。但是,如果您只有二十列,则可能没有很多调整范围。

至于推荐,问题是,您知道哪些产品?如果您熟悉Access,我建议您尝试优化现有数据库。我使用过存储数百万行的Access数据库,它们表现得非常好。毕竟,无法保证将相同的设计移动到不同的产品会自动使运行速度 x 更快。 Access作为一种工具的另一个优点是它带有内置的前端工具。如果从Access迁移,您可能需要考虑重新构建应用程序。

答案 12 :(得分:0)

哇,伙计们为你提供了很多平台建议。

我来说吧。

如果您认为存在设计问题以及平台问题,为什么不首先尝试设计更改?这些都是您可能会做出的改变。

如果他们在Access中没有性能差异,那么您就不会变得更糟,因为这些更改可以提高任何平台的可维护性。

然后你可以尝试其他平台,知道你有一个坚实的设计,并且你没有浪费任何时间。

答案 13 :(得分:0)

SQLite也可以成为候选人。

答案 14 :(得分:0)

我建议不要用快递来表达 - 是的,你的小,但如果公共汽车起飞并且将来需要更高的负载怎么办 - 当然这就是你想要的方式?不想切换db layers / run 2 ..

我会看看MySQL或Firebird(曾经是borland interbase)都非常高质量。