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

时间:2014-10-19 09:44:13

标签: java mysql servlets arraylist map

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

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

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

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

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

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

  4. 为了给你更多的上下文,我们目前有大约100个条目,并期望这个增长到大约1,000。 数据库与Web应用程序共享,我们希望确保Web应用程序的最大可用性。同时,SEO是我们的第一流量来源,因此保持快速加载时间对我们来说非常重要。

    对此的任何想法都将非常感激。

1 个答案:

答案 0 :(得分:0)

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