我想知道是用MySQL还是用服务器语言处理数据更快。我确信像ORDER这样的原生函数在MySQL中会更快,因为索引、缓存等,但实际上是计算排名(包括返回具有相同排名的多个条目的ties ):
示例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服务器
...as不是只做一个SELECT TORCH_ID FROM torch_info ORDER BY score DESC,然后在web服务器上计算PHP的排名。
发布于 2009-06-05 18:25:57
对于大多数非复杂的计算,MySQL可能会更快。然而,90%的时间是数据库服务器的瓶颈,所以你真的想通过这些计算使你的数据库停滞不前吗?我自己更愿意把它们放在web/应用服务器上,以平衡负载,但这是你的决定。
发布于 2009-06-05 20:42:22
一般来说,“我应该在数据库中处理数据,还是在web服务器上处理数据”的答案是,“视情况而定”。
SELECT * WHERE x = 3发布于 2009-06-05 18:08:49
计数的速度将取决于您使用的数据库存储引擎和表的大小。尽管我怀疑几乎每一次在mySQL中完成的计数和排序都比将相同的数据放入内存并执行相同的操作要快。
https://stackoverflow.com/questions/957261
复制相似问题