使用jquery进行大型查询和筛选,还是进行更多较小的查询?


Is it better to do a large query and filter with jquery, or do more smaller queries?

我正在使用php/mysql和jquery编写我的第一个网站。对于下一部分,用户将应用过滤器和排序来查找特定的项目(类似于高级搜索),并且还将有一个搜索框。我希望数据能够在任何复选框过滤器更改后立即反映更改(目前有一个测试ajax调用,没有数据库查询可以很好地完成此操作)。

是重新形成查询字符串并在每次过滤器更改时重新查询数据更好,还是进行一个大查询并根据过滤器过滤结果更好?

目前,记录的数量将很低,但有可能增长到数千条。

我会说仅基于用户选择的数据构建查询,因为当数据变得非常大且难以处理时,将所有这些数据发送给客户端将是愚蠢的。如果您仔细考虑一下,它将在两个主要方面损害性能:

  1. 大数据下载到客户端。
  2. JavaScript将需要处理(排序/过滤)结果并显示用户所要求的内容。

在我看来,这是显而易见的。您最终将不得不根据数据库的大小重新设计解决方案,这是您不希望的

服务器擅长处理查询,对大量数据进行排序和过滤。如果有选择的话,你不应该在客户端这样做。

在这种情况下,我建议调用ajax来获取过滤后的信息。您可能还想限制显示的选项的数量。您可以将查询限制为不超过25、50或100个选项,而不必呈现数千个选项(这可能很耗时)。这节省了时间(更少的信息检索,更少的工作做服务器端,更快的数据传输和更快的客户端操作,由于较小的量。)你的用户仍然可以使用过滤来获得他们需要的信息。

如果记录的数量可能保持较低(数十条记录而不是数千条记录),则不使用ajax实现客户端过滤可能会更快。但是你需要找到一种方法来过滤javascript中的数据,这可能有它自己的含义。