我必须为小型企业开发一个新的(桌面)应用程序。此业务目前具有包含数百万条记录的Access数据库。文件大小约为1.5 GB。老板告诉我,在这个数据库上搜索非常慢。数据库由一个包含大约20个字段的表组成。
我也认为整体数据库设计不是很好。我想使用另一个带有新设计的数据库服务器来提高性能和效率。
考虑到这是一个相对较小的业务,我不想花太多钱购买数据库许可证,所以我想问你会做什么。
答案 0 :(得分:6)
SQL Server Express,MySQL和PostgreSQL等内容免费提供,无需购买许可证。
为了提高搜索速度,您可能还需要查看为表格定义的索引,搜索的确切内容等等。
答案 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)
答案 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)都非常高质量。