我正在制定一个小项目计划,当我需要决定使用哪个本地数据库系统时,我找到了一个点。
输入数据将存储在webserver(托管 - MySQL DB)上。我们的想法是构建一个过程来下载所有必要的数据(例如在午夜)并处理它们。但是,会有很多输入和处理阶段,所以我需要使用某种本地数据库来存储应用程序的半成品
您建议使用哪种本地数据库系统来使用C#(.NET)应用程序?
编辑:最终产品(信息)应该很容易导出回主机MySQL数据库。
正如威尔在他的回答中所提到的 - 是的,我是为了表现和使用舒适。
答案 0 :(得分:13)
我想说Microsoft Sql 2005 Express,因为它(几乎)是在.NET中开发时的明显选择。
但这完全取决于你以前的数据库技能。如果您已经知道MySql,并且正如您已经说过的那样,那么数据应该导出回MySql。为什么不一直使用MySql?
答案 1 :(得分:8)
对于快速和脏的我会使用Sql Server Compact Edition.它是Sql Server的进程内实现,因此它不需要您安装任何其他应用程序。
在当天,您将使用Access数据库进行此类操作。但Access数据库有点打击。
将完成的数据上传回生产服务器并不需要太多时间。如果您正在寻找自动化该过程的解决方案,您可能需要在本地托管MySql实例并使用它提供的任何复制服务。
答案 2 :(得分:3)
取决于应用程序的分布程度。对于服务于几个用户(或一台机器上的单个用户)的独立应用程序,SQLite极其快速和高效。 SQLite的主要问题是它不正式支持并行写入。在轻量级应用程序中,这不会给您带来问题;但是,使用SQLite可以在线为数百万用户提供服务,效果不佳。
另一个重要的问题是FTS(全文搜索)。您的应用程序要搜索整个单词而不是单个/多个字符吗?如果是这样,请考虑使用Microsoft SQL Server,因为要使FTS在SQLite上工作非常麻烦,并且在某些操作系统(包括Linux)上几乎是不可能的。但是,即使在数据库创建后,只需单击几下,MS SQL Server都可以启用FTS。 / p>
就响应性而言,我已经进行了许多测试,对于简单的查询,SQLite通常比MS SQL Server快10-20毫秒。同样,可以在MS SQL Server中进行性能调整,并且该生态系统非常强大。
因此,我强烈建议使用MS SQL Server。
答案 3 :(得分:2)
我说使用Sql Server Compact Edition。它与SQL Server的完整版本类似,VS2008内置支持设计表,查询等(Management Studio 2008也支持它)。最大的缺点是你丢失了存储过程,但好处很大,因为不需要在本地用户机器上安装任何东西,并且它可以快速地选择数据。更酷的是,使用SQL Metal,您可以创建一个DBML文件并使用LINQ,就像使用Sql Server一样。
答案 4 :(得分:1)
使用db4o怎么样?这是一个可以嵌入到您的应用程序中的OODB。还支持replication。 编辑:作为旁注 - 在我目前使用db4o的宠物项目中,我有一行(C#3.5):
IList<Users> list = Persistence.Database.Query<Users>(u => u.Name == "Admin");
使用强类型lambda表达式从数据库中获取(惰性)对象列表。它还使用索引快速检索列表。
答案 5 :(得分:0)
MS SQL Server支持开箱即用,无需任何其他驱动程序或设置。此外,MS SQL Server Express是免费的。
您可以生成将数据导入/导出MySQL的脚本。
答案 6 :(得分:0)
“明显”的选择是MS SQL Server Express。 VS和.net都支持它本地,如果你已经体验过它(对于主数据库),我肯定会坚持使用它(或它的快速版本)。
但这肯定不是你选择的结束。我将SQLite用于跨平台应用程序和Web应用程序。它的速度非常快,并且通过System.Data.SQLite很好地集成了 - 虽然没有MS SQL Server那么紧密。
还有一个紧凑版的SQL Server,可以很好地与SQLite进行比较。
答案 7 :(得分:0)
我不知道一个好的进程内数据库是完全与MySQL兼容的语法和类型。考虑到这一点,您有三种选择:
IMO,MS数据库堆栈(不包括访问)的一大优势在于它们具有兼容的解决方案,可以满足您从桌面到多数据中心群集的所有工作。如果您的应用程序规模发生变化,或者您需要在两个不同类别的应用程序之间发送数据,那么您的数据库层将得到处理。
答案 8 :(得分:0)
选择任何可用的内容,但只选择针对接口的代码,这样您就可以轻松地在它们之间切换。
对于生产,我会说大型项目的MS SQL(或表达中级)只是因为与小型项目的VS和Sqlite紧密集成。
鉴于描述,我认为Sqlite将是一个不错的选择,因为它是最简单/最低的开销。
答案 9 :(得分:0)
我最近一直在做一些测试,虽然我也推荐使用SQL Server 2005(Express,如果需要),因为虽然SQL Server 2008是新的,现在是RTM,但它可以开箱即用。
答案 10 :(得分:0)
大多数人都提到过SQL Server ......我的理由是你可以使用源代码控制将测试用例从C#集成到数据库....
团队基础(TFS)就是来自微软的GUI ......
答案 11 :(得分:0)
因为已经回答了这个问题。我不得不提到使用CLR语言时,CLR / .NET Framework集合将MS SQL Server 2005/2008与其他语言区分开来。摘录自here。
使用Visual等语言 基本的.NET和C#,你可以大写 在CLR集成上编写代码 逻辑更复杂,更多 适合计算任务。 另外,Visual Basic .NET和C# 提供面向对象的功能 如封装,继承, 和多态性。你很容易 将相关代码组织成类和 命名空间,这意味着你可以 更容易组织和维护你的 你工作时的代码投资 有大量的代码。该 逻辑和身体的能力 将代码组织成程序集和 命名空间是一个巨大的好处 使您能够更好地查找和关联 不同的代码片段 数据库实施。
答案 12 :(得分:-1)
对于你所描述的,绝对是MS SQL Server。良好的性能,良好的工具。免费。