我知道使用 LocalDb
对于开发非常好用和容易,但我想知道在托管网站时,在生产环境中使用它是否是个好主意?
我问这个问题是因为我想知道它在生产环境中是否会有任何速度问题。
这是我想在生产环境中使用的连接字符串:
Server=(LocalDB)\\v11.0;Integrated Security=SSPI;MultipleActiveResultSets=true;
AttachDBFilename=|DataDirectory|ProjectDB.mdf;
我知道使用 LocalDb
对于开发非常好用和容易,但我想知道在托管网站时,在生产环境中使用它是否是个好主意?
我问这个问题是因为我想知道它在生产环境中是否会有任何速度问题。
这是我想在生产环境中使用的连接字符串:
Server=(LocalDB)\\v11.0;Integrated Security=SSPI;MultipleActiveResultSets=true;
AttachDBFilename=|DataDirectory|ProjectDB.mdf;
"普通" - 很难说,这是一个相对的术语。
允许 - 是的。这里是微软SQL Server Express博客介绍LocalDB时的一句话:
"...如果LocalDB的简单性(和限制)适合目标应用程序环境的需求,开发人员可以继续在生产中使用它,因为LocalDB也是一个非常好的嵌入式数据库。"
更新(2019年3月)
经过在数十个生产站点中使用LocalDB已经两年的时间,我确认它能够工作。然而,如果您需要一个免费的多用户(在LocalDB术语中称为“共享”)DB,请使用SQL Server Express。LocalDB不是一个很好的多用户解决方案。有许多要克服的障碍。我现在没有时间,但如果您想了解更多关于这些障碍以及相关的解决方法的详细信息,请留言,我会在这里或另一个问题中记录它们。
更新(2021年4月)
致命问题 - 在SQL Server LocalDB 2017和2019中,共享(即多用户)实例功能已经无法正常工作了。甚至安装其中一个版本都会阻止访问在早期版本中创建的共享实例。该问题在此处有记录。目前唯一已知的“解决方法”是卸载损坏的LocalDB版本,使用LocalDB 2016或更早的版本。
更新(2021年9月)
现在已经有了解决前一个更新中提到的“停机”问题的修复方法(更新于2021年4月)。我已经成功地测试了这个修复方法,适用于两个版本。 最低版本分别是:
我不这么认为,
虽然LocalDb和SQLExpress在性能上可能相同,但如果LocalDb在一段时间内没有任何请求,它的进程会自行关闭。通常下一个请求需要太长时间才能响应(或者更糟糕的是,超时)。
我建议您安装自己的SQLEXPRESS实例。