看板 PHP 關於我們 聯絡資訊
※ 引述《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