我正在使用C#设计一个CMS,需要决定将网站的配置设置保存在哪里。同时考虑定义我的基本HTML模板,并在服务器端处理它们以提前创建页面。
那么对于服务器而言,从XML文件中读取信息还是从本地数据库查询同样的信息,一般哪种方式更快/开销更小?
我正在使用C#设计一个CMS,需要决定将网站的配置设置保存在哪里。同时考虑定义我的基本HTML模板,并在服务器端处理它们以提前创建页面。
那么对于服务器而言,从XML文件中读取信息还是从本地数据库查询同样的信息,一般哪种方式更快/开销更小?
我认为这不太可能成为代码中的瓶颈。您计划多频繁读取配置设置?配置通常非常小,且读取不频繁。有更重要的事情需要考虑,例如存储位置和方式:
引导:您可能可以依靠应用程序访问本地文件系统,并硬编码配置文件名...但如果所有配置都在数据库中,那么您在哪里配置要连接哪个数据库?
易于调整和部署:通过手动在服务器上编辑配置文件可能比在数据库中进行更快的更改...但如果您有多个服务器,您是否想在每个服务器上调整一个文件?
简单的代码阅读/处理配置:您的配置会是什么样子?它是否自然层次化?如果是,则 XML 可能很合适。如果更像一组名称/值对,则简单的表格很适合。当然,您可以将 XML 存储在数据库中-您不必将存储位置和存储格式决策绑定在一起。在数据库中编辑 XML 文档可能比编辑 XML 文件或更改单个值更难...但是您始终可以借助此类工具来简化生活。
只是服务器设置 - 真的不重要。你只需要阅读一次。即使需要几秒钟,也不会被注意到。
先衡量,再优化。
这取决于您将采用的访问数据的策略。
如果您选择使用数据库,那么您是否会缓存结果?如果您不断地从数据库中提取详细信息,可能会产生大量的网络通信。
就简单性而言,您可以使用Linq对数据源进行无差别处理。
更快吗? 一旦数据在内存中,就不应该有任何区别。正如另一个帖子指出的那样,配置信息通常是相当静态的。为什么不创建一个控制台应用程序,并通过使用分析器来量化差异呢?
如果速度是您最重要的考虑因素,那么请使用数据库。XML 的速度非常慢。
但是,如果您的数据非常“复杂”或具有许多不同的关系和属性,请考虑使用 XML。
在这里,我会默认使用数据库。 它更快,需要的代码更少。