0

我正在构建一个 .net Web 应用程序,该应用程序将涉及根据可接受的电子邮件地址列表验证电子邮件输入字段。可能有多达 10,000 个可接受的值,并且它们不会经常更改。当他们这样做时,整个列表将被替换,而不是单个条目。

我正在讨论实现这一点的最佳方式。我们有一个 SQL Server 数据库,但由于这些记录将是相对静态的并且只能批量替换,因此我正在考虑仅引用/搜索包含字符串值的文本文件。似乎这会使上传过程更容易,并且将这些信息放在 rdbms 中几乎没有什么好处。

反馈表示赞赏。

4

2 回答 2

2

如果数据库已经存在,则使用它。您所说的正是数据库的设计目的。如果在路上你决定你需要做一些稍微复杂的事情,你会很高兴你选择了 DB。

于 2013-05-20T16:44:47.540 回答
0

我将对你的情况做一些假设。

  1. 您的数据集包含超过 1 列的可用数据。
  2. 您的记录集包含的行数多于您将始终显示的行数。
  3. 您的数据需要被格式化为某种输出视图(例如 HTML)。

以下是您的半静态数据应保留在 SQL 中而不是文本文件中的一些具体原因。

  1. 每次您希望阅读和处理文本数据时,您都不必解析它。(字符串解析是比较重的内存和CPU负载)。SQL 会将您的列存储为预先解析的结构化数据。
  2. 您不必开发自己的行过滤或搜索算法(或实现为您执行此操作的库)。SQL 已经是一个复杂的引擎,它应用了缓存、查询优化的高级算法(具有许多用于查找/搜索/扫描/索引/哈希/等的底层高级算法。)
  3. 随着时间的推移,您可以选择使用 SQL 来扩展解决方案的稳健性以及与其他工具的集成。(将数据放入文本或 XML 文件将限制未来的可能性)。

注意事项:

  • 您的特定 SQL Server 实现可能会受到磁盘 IO 和网络延迟性能的影响。为了调整磁盘 IO 性能,结构良好的 SQL Server 将数据文件 ( .mdf) 放在为快速读取调整的快速多轴磁盘阵列上,并将它们与为快速写入调整的轴上的日志文件 (.log)分开.
  • 您可能会发现 SQL Server 的延迟和忙碌(不是一句话)会影响性能。如果您在非常繁忙或速度很慢的 SQL 服务器上运行,您可能会寻找本地文件替代方案,在这种情况下,我会推荐一种结构化格式,例如 XML。(但是,如果您发现自己正在寻找解决方法来避免使用 SQL 服务器,那么最好投入一些时间/金钱来改进您的 SQL 实现。
于 2013-05-20T17:06:52.943 回答