作者inav8dheart (在每个人的心里)
看板PHP
标题Re: [请益] 用PHP做运算 还是用MYSQL做运算 ?
时间Sat Nov 3 22:24:07 2012
※ 引述《jl844032 (湖蓝者)》之铭言:
: 如题
: 想请问版上大德们
: 一个PHP想要从MYSQL拉资料後 再用PHP做运算比较好
: 还是在MYSQL做完运算後 传回来PHP比较好
: 关於效能方面 哪个方式会比较好?
讲到这个我就有切身之痛了
约莫在 10 年前敝前前公司在开发某个知名平台时,当时的研发主管就曾提过这种方式
把一些东西丢到 SQL 去做,减少 web server 的负担, 因此底下的工程师们就开始
用这种方式写程式, 2~3年後产品出来也开始上线在跑, 随着时间过去,客户越来越多
使用者越来越多,资料量越来越大後发现 DB 成了最大的瓶颈
大概想像一下, SQL 语法中包含了 运算式、判断式、正规表达式...等等一堆东西时
在人少的时候当然没什麽感觉, 但是当人稍微增加时就会看到 CPU 明显往上飙,
人再更多时 CPU 就是颗颗满载,以致於後来的客户他们购买的机器等级越买越高,
假设 500 人的系统我要用 10 分的力道去承载, 但是到 1000 人的系统时却得花 30 分
以上的力道去承载, 对於钱多多的公家单位来说,他们反而比较高兴
因为可以宣传民众使用程度热烈(这可是业绩 XD), 可以再去多要更多的钱来买好机器,
但是对於锱铢必较的私人企业来说, 这就是一个天大的灾难了
半年多前我算是被半挖角到客户端,以前总觉得加机器就能解决的问题不算是问题,
现在当机器不是喊加就能加的时候,就知道痛在哪里了
囧囧囧囧囧囧囧囧囧囧囧囧囧分隔线囧囧囧囧囧囧囧囧囧囧囧囧
其实我并不反对把一些东西丢到 DB 去, 但问题是那个力道很难拿捏, 换句话说就是
程式设计师对於 SQL 要到达 "精通" 这个等级, 但是我个人是有绝对的洁癖,对於那些
很脏的 SQL 真的很受不了, 而且我也认为大家各尽本份, DB 就去做它 DB 该做的事
对 DB 做 load balance 或是搞个 1出1进 的双 DB 方式,真的也没比较轻松
最近有个好消息是厂商准备对 DB 动刀了,可是手术时间要多久: 未知 囧rz
我个人认为把那些语法修一修真的会比较有感啊!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 36.236.17.191
1F:推 carlcarl:嗯嗯 感觉满有道理的 11/04 00:38
2F:→ carlcarl:而且app server做scale out也比db来得容易 11/04 00:38
3F:推 twsphere:身同感受..db还是乾净简单就好 运算的还是交给程式来吧 11/08 15:26