我们正在使用Java构建自定义CMS。
当主servlet收到请求时,我们执行查找以查看哪个条目与请求路径相关联,然后向用户显示该条目。
我们想知道这3种方法中的哪一种可能是最快/最便宜的性能:
在启动时存储servlet上下文中所有条目的映射(key = path,value = entry)然后根据收到请求时的路径获取条目
在启动时存储servlet上下文中所有条目的数组列表,然后简单地迭代列表以根据收到请求时的路径获取条目
执行数据库查找以获取条目
为了给你更多的上下文,我们目前有大约100个条目,并期望这个增长到大约1,000。 数据库与Web应用程序共享,我们希望确保Web应用程序的最大可用性。同时,SEO是我们的第一流量来源,因此保持快速加载时间对我们来说非常重要。
对此的任何想法都将非常感激。
答案 0 :(得分:0)
内存中查找总是比数据库查找快。如果数据的大小不大,并且加载后数据没有变化,那么将它存储在Map中是一个不错的选择(迭代列表会是一个坏主意)。如果您的服务器有备用内存,那么在内存中有几MB的数据就不会有问题。