【问题标题】:Does datatable filter results from database or just from the fetched result?数据表是从数据库中筛选结果还是仅从获取的结果中筛选结果?
【发布时间】:2017-04-01 16:27:28
【问题描述】:

我正在研究 php 和 mysql 中的数据表集成,我很困惑,当我过滤数据时,它是从数据库中过滤还是仅从客户端的数据中过滤?

【问题讨论】:

  • 你的问题能再具体点吗?
  • 除非你让它在过滤时调用数据库,否则它不会从数据库中过滤。
  • @Webbanditten 但是当我输入任何单词时它会进行 ajax 调用并获取数据会花费很多时间吗?如果我从数据库中获取所有记录并将它们分页然后过滤,那么与从数据库中获取相比,它的过滤速度会非常快。你说什么?
  • @DrimadesBoy 我对两件事感到困惑 我应该从数据库中获取所有记录然后过滤结果吗?我应该只在用户想要过滤数据时才获取记录吗?
  • 如果没有大量数据,您可以让您的输入自动完成。数据将在开始时加载,因此不需要 AJAX 调用。如果有大量数据要处理,则在 SQL 查询中过滤数据并将结果限制为某个数量。在数组或任何集合中加载 200k 行将使用大量资源,过滤该大数组将使用更多资源。

标签: php jquery datatables


【解决方案1】:

使用 AJAX 请求方法向您的数据库发送有条件的查询并获得有限数量的结果可能是最好的方法。 Ajax 响应将在 300ms-500ms 左右。

【讨论】:

  • 所以我会从一个查询中显示分页按钮单击的记录,并从另一个查询中获取过滤结果的记录。你在说这个吗?
  • 如果您使用的是某些框架,它们集成了分页,因此您只需要返回从查询中获得的结果集。如果没有,那么有很多插件可以做同样的事情。当然,您可以在查询中使用 SQL“LIMIT”和“OFFSET”手动执行此操作。例如 LIMIT 10 OFFSET 10 将返回从 11 到 20 的行(如果您将分页限制为每页 10 个结果,这是第 2 页)
猜你喜欢
  • 2022-11-21
  • 2020-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多