gpt4 book ai didi

php - 用于处理数据的 MySQL 与 Web 服务器

转载 作者:可可西里 更新时间:2023-11-01 07:33:56 25 4
gpt4 key购买 nike

我想知道用 MySQL 或服务器语言(如 PHP 或 Python)处理数据是否更快。由于索引、缓存等原因,我确信像 ORDER 这样的 native 函数在 MySQL 中会更快,但实际上是在计算排名(包括返回具有相同排名的多个条目的关系):

示例 SQL

SELECT TORCH_ID,
distance AS thisscore,
(SELECT COUNT(distinct(distance))+1 FROM torch_info WHERE distance > thisscore) AS rank
FROM torch_info ORDER BY rank

服务器

...与仅执行 SELECT TORCH_ID FROM torch_info ORDER BY score DESC 然后在 PHP 中计算 Web 服务器上的排名不同。

最佳答案

编辑:自从发布这篇文章以来,我的答案完全改变了,部分原因是我从那时起获得的经验,部分原因是关系数据库系统自 2009 年以来有了显着改善。今天,9 次满分 10,我建议尽可能多地在数据库中处理数据。原因有以下三个:

  1. 数据库高度优化处理数据——这是他们的全部工作!除了少数异常(exception),复制数据库在应用程序级别所做的事情将会变慢,除非您投入大量工程工作来实现数据库免费为您提供的相同优化——尤其是相对较慢的语言,如 PHP、Python 或 Ruby。

  2. 随着表大小的增长,将其拉入应用层并在其中进行操作变得非常昂贵,这仅仅是因为传输的数据量巨大。许多应用程序永远不会达到这种规模,但如果您达到了这种规模,最好减少传输开销并使数据操作尽可能靠近 DB。

  3. 根据我的经验,与 RDBMS 相比,您在应用程序中引入一致性错误的可能性要大得多,因为数据库可以在较低级别对您的数据实现一致性,但应用程序不能。如果您没有内置安全网,那么您必须更加小心,不要犯错误。


原始答案:对于大多数非复杂计算,MySQL 可能会更快。然而,90% 的时间数据库服务器是瓶颈,所以你真的想通过这些计算使你的数据库陷入困境来增加瓶颈吗?我自己宁愿将它们放在 Web/应用程序服务器上以平衡负载,但这是你的决定。

关于php - 用于处理数据的 MySQL 与 Web 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/957261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com