Java 在 servlet 上下文中存储与数据库查找

标签 java mysql servlets arraylist dictionary

我们正在用 Java 构建自定义 CMS。

当主 servlet 收到请求时,我们会执行查找以查看哪个条目与请求路径关联,然后向用户显示该条目。

我们想知道这 3 种方法中哪一种在性能方面可能是最快/最便宜的:

  1. 在启动时存储 servlet 上下文中所有条目的映射(键 =路径,值=条目),然后在收到请求时根据路径简单地获取条目

  2. 在启动时存储 servlet 上下文中所有条目的数组列表,然后在收到请求时简单地迭代该列表以根据路径获取条目

  3. 执行数据库查找以获取条目

为了给您提供更多背景信息,我们目前有大约 100 个条目,预计会增长到 1,000 个左右。 数据库与 Web 应用程序共享,我们希望确保 Web 应用程序的最大可用性。同时,SEO 是我们的第一大流量来源,因此保持快速的加载时间对我们来说极其重要。

任何对此的想法将不胜感激。

最佳答案

内存中查找总是比数据库查找更快。如果数据量不大,并且数据在加载后不会发生变化,那么将其存储在 Map 中将是一个不错的选择(迭代列表将是一个坏主意)。如果您的服务器有空闲内存,那么内存中拥有几 MB 的数据将不是问题。

关于Java 在 servlet 上下文中存储与数据库查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26449259/

相关文章:

java - 为什么 JavaFX 文档与 Java 8 文档分开?

Java Equals 和 Pass by value 混淆

mysql - 如何从第一个表中选择基于第三个表的所有内容

mysql - 更新两个表之一中存在的行的值

mysql - 从 MySQL 查询中删除重复结果

java - JSP Servlet请求的资源()不可用

java - HttpServletResponse.sendError() 不重定向到错误页面

java - Play Framework 2.5 表单对象 bean 中的依赖注入(inject) (Java)

java - Android 改造预计为 BEGIN_ARRAY

Java Servlet 方法参数、响应和线程安全