何时使用.mdf和何时使用.sdf?

时间:2012-09-16 20:36:25

标签: sql asp.net-mvc database entity-framework vwdexpress

在互联网上看到很多内容后,我没有在两种文件类型之间找到任何解释:.mdf.sdf

我相信

.sdf将是SQL Server的紧凑版本(.mdf)。他们看起来完全不同。

遵循msdn上的两个教程,即MVC Movie AppMusicstore。两者都使用.sdf

部分引用(full):'首先它应该是“| DataDirectory | ASPNETDBContext.mdf”(注意扩展区别)。你的申请......'

两个教程都有.sdf的连接字符串,即:

<add name             ="MovieDBContext"
     connectionString ="Data Source=|DataDirectory|Movies.sdf" 
     providerName     ="System.Data.SqlServerCe.4.0"
/>

<add name             ="MusicStoreEntities" 
     connectionString ="Data Source=|DataDirectory|MvcMusicStore.sdf" 
     providerName     ="System.Data.SqlServerCe.4.0"
/> 

问题:

我的问题是在何时何地使用?更多为什么使用哪个。

3 个答案:

答案 0 :(得分:13)

SQL Server Compact(sdf文件)在Windows手机中很受欢迎,用于存储一些数据(数据量很少),也可以在网站上使用,但性能很差,甚至SQLite也更好。

在具有大量数据的大型网站中使用的SQL Server(mdf文件)。它功能更强大,但不能用于手机,必须安装在服务器上。

看看这个:Comparison of SQL Server Compact, SQL Server Express 2012 and LocalDB

答案 1 :(得分:12)

SQL Server Compact Edition 确实与“常规”SQL Server完全不同。

SQL Server CE是一个独立的单用户数据库,由您的应用程序在运行代码的机器上加载;它包含单个.sdf文件中的所有数据,并且仅支持“常规”SQL Server(及其功能)的一小部分。 SQL Server CE非常适合简单,独立的单用户应用程序(如手机应用程序)。

“Real”SQL Server是服务器产品 - 您将其安装在服务器上,您的客户端只连接到它(通常,客户端计算机没有安装SQL Server本身)。它是一个完整的RDBMS,包含所有内容 - 存储过程,触发器等,因此最适合处理结构化的大规模数据 - 考虑企业应用程序,例如订单处理,发票,会计,大型数据库,适用于任何用户样。

答案 2 :(得分:0)

首先,sql server数据库文件不是一个完整的sql server数据库,如果你以这种方式创建它,它就是一个sql server express。 Sql Server Express数据库使用起来并不是很棒,因为大多数主机不运行sql server express并且如果你试图让它们在sql server数据库上运行,那么发布它们会很棘手。最好先从sql server开始,然后进行表达和迁移。

本地db实际上是sql server compact edition。 http://en.wikipedia.org/wiki/SQL_Server_Compact

对于连接字符串,请转到http://www.connectionstrings.com/sql-server/这里几乎每个连接字符串都可用。要使用SQL Server Express,您需要安装它,并且要管理它,您需要下载sql server express管理工具。通常,大多数sql express实例都设计用于本地帐户,但如果我没记错的话,您可以使用管理工具创建sql server登录。