我们正在用 Java 构建自定义 CMS。
当主 servlet 收到请求时,我们会执行查找以查看哪个条目与请求路径关联,然后向用户显示该条目。
我们想知道这 3 种方法中哪一种在性能方面可能是最快/最便宜的:
在启动时存储 servlet 上下文中所有条目的映射(键 =路径,值=条目),然后在收到请求时根据路径简单地获取条目
在启动时存储 servlet 上下文中所有条目的数组列表,然后在收到请求时简单地迭代该列表以根据路径获取条目
执行数据库查找以获取条目
为了给您提供更多背景信息,我们目前有大约 100 个条目,预计会增长到 1,000 个左右。 数据库与 Web 应用程序共享,我们希望确保 Web 应用程序的最大可用性。同时,SEO 是我们的第一大流量来源,因此保持快速的加载时间对我们来说极其重要。
任何对此的想法将不胜感激。
最佳答案
内存中查找总是比数据库查找更快。如果数据量不大,并且数据在加载后不会发生变化,那么将其存储在 Map 中将是一个不错的选择(迭代列表将是一个坏主意)。如果您的服务器有空闲内存,那么内存中拥有几 MB 的数据将不是问题。
关于Java 在 servlet 上下文中存储与数据库查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26449259/