作者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
推 carlcarl:嗯嗯 感覺滿有道理的 11/04 00:38
→ carlcarl:而且app server做scale out也比db來得容易 11/04 00:38
推 twsphere:身同感受..db還是乾淨簡單就好 運算的還是交給程式來吧 11/08 15:26