我正在使用php/mysql和jquery编写我的第一个网站。对于下一部分,用户将应用过滤器和排序来查找特定的项目(类似于高级搜索),并且还将有一个搜索框。我希望只要任何复选框过滤器发生更改,数据就能反映出更改(目前有一个不带数据库查询的测试ajax调用,可以很好地完成这项工作)。
是重新形成查询字符串并在每次筛选器更改时重新查询数据,还是执行一个大型查询并根据筛选器过滤结果更好?
目前,记录的数量将很少,但有可能增长到数千条。
发布于 2011-07-31 03:47:19
我会说完全基于用户选择的数据来构建查询,因为当数据确实变得庞大和笨重时,将所有这些都发送给客户端是愚蠢的。如果你仔细想想,它会在两个主要方面对性能造成损害:
下载到client.
在我的书里,这是不需要动脑筋的。您最终将不得不重新处理您的解决方案,以适应数据库的大小,这是您不想要的。
该服务器擅长处理查询以及对大量数据进行排序和过滤。如果你有选择的话,这不是你在客户端应该做的事情。
发布于 2011-07-31 03:49:13
在这种情况下,我建议使用ajax调用来获取过滤后的信息。您可能还想限制显示的选项数量。您可以将查询限制为不超过25个、50个或100个选项,而不必呈现数千个选项(这可能很耗时)。这节省了时间(检索的信息更少,服务器端的工作更少,数据传输更快,客户端操作更快,因为数据量更小。而且您的用户仍然可以使用过滤来获取他们需要的信息。
如果记录的数量可能会很少(几十条而不是数千条),那么在不使用ajax的情况下实现客户端过滤可能会更快。但是,你需要找到一种方法来过滤javascript中的数据,这可能会有其自身的含义。
https://stackoverflow.com/questions/6885543
复制相似问题