我使用 MySQL 已经有一段时间了,但我从来没有真正使用过支持的 mathematical functions ,例如 FLOOR()
, SQRT()
, CRC32()
, 等等。
在查询中使用这些函数而不是仅使用 PHP 对结果集执行相同操作是否更快/更好?
编辑 :我不认为这个问题与 this 重复,因为我的问题是关于 数学 功能,列在我链接的页面上,不是 CONCAT()
或 NOW()
或该问题中的任何其他功能。请在标记之前考虑这一点。
最佳答案
在 PHP 中执行此操作更有效。
更快取决于所涉及的机器,如果您谈论的是对一个用户来说更快。如果您谈论的是让 100 万用户访问网站的速度更快,那么在 PHP 中进行这些计算会更有效。
运行 PHP 的网络服务器的负载很容易分布在大量机器上。这些机器可以并行运行,处理来自访问者的请求并从数据库中获取必要的信息。然而,数据库并不容易并行运行。复制或分片等问题很复杂,可能需要专业软件和正确组织的数据才能正常运行。与向服务器阵列添加另一个 PHP 安装相比,这些是昂贵的解决方案。
正因为如此,数据库机器上的 CPU 周期的值(value)远比网络服务器上的值(value)高得多。因此,您应该在 CPU 周期更便宜且更易于并行化的网络服务器上执行这些数学函数。
关于php - MySQL 中的数学函数是否比 PHP 更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24425756/