【问题标题】:Find function in j2ee web application在 j2ee Web 应用程序中查找函数
【发布时间】:2015-03-26 06:55:40
【问题描述】:

我正在开发一个 web 应用程序的小市场,我必须实现搜索功能。现在,我知道我可以在 mysql 中使用 MATCH 函数,或者我可以添加一些库(如 apache lucene),但这不是我怀疑的重点。我正在考虑管理我从搜索功能获得的一组结果(一个 servlet 会这样做),因为并非所有结果都应该一次发送给客户端,所以我想在某些页面中将它们分开。我想知道做什么更有效,如果我更愿意在 db 中为客户端调用的每个页面进行搜索,或者我是否应该将结果集保存在托管 bean 中并在客户端请求新页面时访问它们结果。谢谢(我希望我的英语足够好理解)

【问题讨论】:

    标签: mysql jsp jakarta-ee servlets search


    【解决方案1】:

    您应该问的问题是“您可以在内存中存储多少个结果”?如果您有一个小数据集,当然可以,但您必须定义“小数据集的含义”。这将有助于您调用数据库一次并在内存中过滤您的结果(这会更快)。

    替代方法,对于更大/巨大的数据集,您将希望在每个用户页面请求时都向数据库请求。这里的问题是您在每次调用时都调用数据库,因此您必须有一个优化的搜索查询,它将以小块的形式产生结果(SQL LIMIT 子句)。如果您只想访问数据库一次并在“内存”中过滤结果,则必须在应用程序和数据库之间插入一个缓存层。这样,结果就会被缓存,您可以根据缓存的结果进行过滤。缓存将位于不同的 JVM 上,不会共享您的内存堆空间。

    这里没有灵丹妙药。你只能根据你的非功能性需求来回答这个问题。

    我希望这会有所帮助。

    【讨论】:

    • 我认为我必须评估 LIMIT 子句,但我认为您的回答是正确的 :) 这里没有灵丹妙药。我会在哪里填充更多的数据库,我会考虑你的建议,非常感谢
    猜你喜欢
    • 1970-01-01
    • 2015-10-21
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    相关资源
    最近更新 更多