从数据库中选择所有数据并使用PHP手动筛选

从数据库中选择所有数据并使用PHP手动筛选,php,mysql,database,performance,Php,Mysql,Database,Performance,我想使用我自己的算法来过滤从数据库检索到的数据,而不是使用类似MySQL的子句。。。但是,这是否会对具有大量数据的应用程序性能产生显著影响?是的,如果您总是检索所有数据,然后对其进行排序,而不是让数据库处理,则会对性能产生巨大影响。是的,如果您总是检索所有数据,然后对它们进行排序,而不是让数据库处理,那么这将对性能产生巨大影响。数据过滤和搜索肯定是mysql服务器的工作。客户端数据筛选从来都不是一个好方法: 当您使用LIKE子句时,mysql服务器将在将数据检索到客户端(PHP)之前过滤数据。因

我想使用我自己的算法来过滤从数据库检索到的数据,而不是使用类似MySQL的子句。。。但是,这是否会对具有大量数据的应用程序性能产生显著影响?

是的,如果您总是检索所有数据,然后对其进行排序,而不是让数据库处理,则会对性能产生巨大影响。

是的,如果您总是检索所有数据,然后对它们进行排序,而不是让数据库处理,那么这将对性能产生巨大影响。

数据过滤和搜索肯定是mysql服务器的工作。客户端数据筛选从来都不是一个好方法:

当您使用
LIKE
子句时,mysql服务器将在将数据检索到客户端(PHP)之前过滤数据。因此,当您不使用像这样的
时,传输的数据量要大得多,这是第一个性能问题

第二个问题是PHP将使用大量内存(整个数据集)

第三个问题是PHP中所有记录都需要的循环



所以,你有三个理由不这么做。请注意,除了
LIKE
子句之外,还有很多。数据过滤和搜索绝对是mysql服务器的工作。客户端数据筛选从来都不是一个好方法:

当您使用
LIKE
子句时,mysql服务器将在将数据检索到客户端(PHP)之前过滤数据。因此,当您不使用像
这样的
时,传输的数据量要大得多,这是第一个性能问题

第二个问题是PHP将使用大量内存(整个数据集)

第三个问题是PHP中所有记录都需要的循环



所以,你有三个理由不这么做。请注意,除了
LIKE
子句之外,还有很多。它们应该合适。

这是一个非常糟糕的主意。您应该将筛选保留在DBMS系统中的一些原因是:

  • DBMS系统针对这些操作进行了优化
  • 这种类型的操作将在Web服务器中造成大量开销。想象一下,必须在PHP中对数千或数百万个字符串执行字符串操作。这是由DBMS立即完成的
  • 将大量数据从数据库传送到Web服务器,甚至可能传送到浏览器,将使应用程序的速度大大降低
  • 使用自己的PHP代码进行过滤有更高的引入错误和逻辑错误的可能性

  • 所以,让DBMS做它的工作吧

    这是一个非常糟糕的主意。您应该将筛选保留在DBMS系统中的一些原因是:

  • DBMS系统针对这些操作进行了优化
  • 这种类型的操作将在Web服务器中造成大量开销。想象一下,必须在PHP中对数千或数百万个字符串执行字符串操作。这是由DBMS立即完成的
  • 将大量数据从数据库传送到Web服务器,甚至可能传送到浏览器,将使应用程序的速度大大降低
  • 使用自己的PHP代码进行过滤有更高的引入错误和逻辑错误的可能性

  • 所以,让DBMS做它的工作吧

    您将使用PDO包装类?取决于算法是什么?您将使用PDO包装类?取决于算法是什么is@luk2302哈哈请注意,软件组件可以同时是服务器和客户端。PHP通常作为HTTP服务器的一部分,没错。但是当PHP连接到mysql时,mysql服务器就是服务器,web服务器扮演客户端的角色。当然,传输更多数据需要更多的时间。数据中心(mysql和web服务器之间)的网络吞吐量可能高于DSL用户(浏览器)和web服务器之间的网络吞吐量,但请注意,数据中心中也存在大量并发流量。@luk2302 LOL!:请注意,软件组件可以同时是服务器和客户端。PHP通常作为HTTP服务器的一部分,没错。但是当PHP连接到mysql时,mysql服务器就是服务器,web服务器扮演客户端的角色。当然,传输更多数据需要更多的时间。数据中心(mysql和web服务器之间)的网络吞吐量可能高于DSL用户(浏览器)和web服务器之间的网络吞吐量,但请注意,数据中心中也存在大量并发流量。