在生产中使用LocalDb是正常的吗?
我知道使用LocalDb
非常好并且易于开发,我想知道在IIS服务器上托管网站时是否在生产中使用它是个好主意?
我问,因为我想知道它是否会在生产中出现任何速度问题。
这是我想在生产中使用的连接字符串
Server=(LocalDB)\\v11.0;Integrated Security=SSPI;MultipleActiveResultSets=true; AttachDBFilename=|DataDirectory|ProjectDB.mdf;
生产中绝对支持LocalDB。 从性能的角度来看,它与SQL Server Express完全相同,因为它们共享相同的数据库引擎。
现在,对于在完整IIS中运行的站点,我建议使用基于服务的SQL Server Express实例。 由于IIS作为服务运行,因此最好也有一个服务托管数据库。 这意味着您不应在连接字符串中使用User Instance=true
或AttachDbFileName=...
如果您想了解更多信息,我建议您使用完整IIS中的LocalDB,第1部分 及其后续内容,第2部分 。 他们会详细介绍。
“正常” – 很难说,这是一个相对的术语。
允许 – 是的。 以下是 Microsoft SQL Server Express博客引用 LocalDB的引用:
“…如果LocalDB的简单性(和限制)符合目标应用程序环境的需求,开发人员可以继续在生产中使用它,因为LocalDB也是一个非常好的嵌入式数据库。 ”
我不这么认为
尽管LocalDb和SQLExpress在性能上可能相同,但如果LocalDb的进程没有任何请求,它会自行关闭。 并且通常下一个请求需要太长时间才能响应(或者更糟糕的是,它会超时)。
我建议你安装自己的SQLEXPRESS实例。