首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理数据的MySQL vs Web服务器

问处理数据的MySQL vs Web服务器
EN

Stack Overflow用户
提问于 2009-06-05 18:05:05
回答 6查看 1.3K关注 0票数 4

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

示例SQL

代码语言:javascript
复制
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

服务器

...as不是只做一个SELECT TORCH_ID FROM torch_info ORDER BY score DESC,然后在web服务器上计算PHP的排名。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-06-05 18:25:57

对于大多数非复杂的计算,MySQL可能会更快。然而,90%的时间是数据库服务器的瓶颈,所以你真的想通过这些计算使你的数据库停滞不前吗?我自己更愿意把它们放在web/应用服务器上,以平衡负载,但这是你的决定。

票数 2
EN

Stack Overflow用户

发布于 2009-06-05 20:42:22

一般来说,“我应该在数据库中处理数据,还是在web服务器上处理数据”的答案是,“视情况而定”。

  1. 添加另一个web服务器很容易。添加另一台数据库服务器会更加困难。
  2. 如果数据处理的输出远小于所需的输入,则在数据库中进行处理可以避免大量的数据传输开销。作为一个简单的例子,在web服务器上遍历表中的每一行,然后遍历它们来选择x= 3的那一行,这将是愚蠢的,当您只需SELECT * WHERE x = 3
  3. As您指出的,数据库已针对其数据操作、使用索引等进行了优化。
票数 2
EN

Stack Overflow用户

发布于 2009-06-05 18:08:49

计数的速度将取决于您使用的数据库存储引擎和表的大小。尽管我怀疑几乎每一次在mySQL中完成的计数和排序都比将相同的数据放入内存并执行相同的操作要快。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/957261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档