Mysql 查询、显示和筛选大型数据库列表

Mysql 查询、显示和筛选大型数据库列表,mysql,ajax,jakarta-ee,collections,Mysql,Ajax,Jakarta Ee,Collections,我试图确定从数据库中收集大型列表,然后在客户端显示和过滤结果的最佳方法。让我举一个简单的例子: 示例:我有一个包含客户数据的数据库,目前它包含大约2000条记录。这个数字在不断增加。在我的网站上,我有一个页面,我希望能够根据姓名、电子邮件、电话号码等信息查询上述数据库,当然还可以显示结果(当用户键入Smith时,它会返回包含Smith姓名的所有记录)。我计划使用AJAX,这样我就可以查询数据库并动态显示结果,就像google那样。当用户开始搜索时,结果将在找到时显示在页面上 可能的解决方案: 不

我试图确定从数据库中收集大型列表,然后在客户端显示和过滤结果的最佳方法。让我举一个简单的例子:

示例:我有一个包含客户数据的数据库,目前它包含大约2000条记录。这个数字在不断增加。在我的网站上,我有一个页面,我希望能够根据姓名、电子邮件、电话号码等信息查询上述数据库,当然还可以显示结果(当用户键入Smith时,它会返回包含Smith姓名的所有记录)。我计划使用AJAX,这样我就可以查询数据库并动态显示结果,就像google那样。当用户开始搜索时,结果将在找到时显示在页面上

可能的解决方案: 不幸的是,我在如何着手实施这样的事情上遇到了难题。我正在考虑使用ValueList模式。当用户第一次加载页面时,我应该查询数据库并将每个记录存储在集合中,然后搜索集合列表并在jsp页面上显示结果吗?本质上是创建一个java数据库。我喜欢ValueList模式的一点是,我对页面加载进行了一次巨大的点击,并将整个数据库转储到存储在列表中的对象中。如果数据库更大,比如说2000000条记录,会怎么样

或者我应该使用一个没有ValueList的简单DOA模式,并为每个单独的搜索查询数据库?这将导致大量数据库查询,特别是考虑到我计划在用户在搜索框中键入时返回结果

编辑:我越想这个问题,它就越是一个AJAX问题。我最关心的应该是在用户键入时如何查询我的数据库。我是否设置了某种侦听器来侦听用户停止键入,然后执行查询?

我将用于此类型的任务

要用于搜索的字段应使用Solr编制索引

然后对Solr执行ajax查询并得到结果。您可以设置顺序、每页的项目数以及仅显示当前页面的结果


Solr还有许多对您有用的其他功能。

您对将当前2000名客户推断为2000000名相当乐观。当你有这么多的客户时,你的应用程序的设计将很难与你现在拥有的有共同点。Solr是众多选项中的一个,但我接受了这个答案,因为对我来说,使用第三方选项是最有意义的。当然,我可以创建自己的版本并重新发明轮子,但这会适得其反。