看板 PHP 關於我們 聯絡資訊
※ 引述《jl844032 (湖藍者)》之銘言: : 標題: [請益] 用PHP做運算 還是用MYSQL做運算 ? : 時間: Thu Nov 1 22:55:11 2012 : 一個PHP想要從MYSQL拉資料後 再用PHP做運算比較好 : 還是在MYSQL做完運算後 傳回來PHP比較好 : 關於效能方面 哪個方式會比較好? 看你資料筆數. 少的話真的隨便. PHP是到記憶體裡面處理. Mysql 就要看也有可能是再 file. 相對來說 php 那邊會吃到比較多的記憶體, 那就會讓你的最大處理量變低 另外, DB很少... 我看到很多case都不會利用到DB處理邏輯.. 所以大部分都在 CPU loading 10~20% ... 很浪費. 雖然說多多利用DB會變的, 沒辦法輕易換DB... 但有多少人的案子需要沒事換DB? 我會再mysql處理字串連接. 比如說 SELECT conact('<a href="?i=', id, '>', id, '</a>'); 這種東西對 DB 還說吃不到多少工, 但你在php寫... // ----------- 自己寫 $data = array() ; while($row = $db->xxx_fetch_row()){ $data[] = '...' . $row['id'] . '...'; } // 用framework // -----------framework //framework 幫你作 $data = array() ; while($row = $db->xxx_fetch_row()) $data[] = $row; // 自己要寫 foreach($db->fetchRow as $name => &$row ){ $row[id] = '...' . $row['id'] . '...'; } 當然在給DB的code有 html 很髒... 不過我會作這種事大部份都在後台 配合如 jqGrid 這樣的東西. 所以我在處理php的時候,很簡單程式都用一樣的. : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 36.234.14.141 : 推 carlcarl:一般是MySQL這邊處理掉 11/02 00:09 : → MOONRAKER:如果是用來決定資料要不要取出的條件 就在MySQL做 11/02 00:35 : → MOONRAKER:如果不是,比如說,只是格式,那隨便在那邊都可以 11/02 00:36 : 推 XD9527:理論來說,能用計算條件從sql取得的話,會比php好 11/02 15:47 : 推 cjoe:運算嗎? 不用想了,用MySQL效率好上超級多 11/02 17:46 : → MOONRAKER:樓上要不要展現一下用MySQL寫loop或遞迴的效率 |D 11/02 18:48 寫loop做啥. select 就會跑了啊. : 推 chenlarry:同moon大,如果拉資料出來結果要多寫10行php code,何不 11/02 23:45 : → chenlarry:上面少打幾個字..多寫10行php code來過濾不要顯示的資料 11/02 23:47 : → chenlarry:何不使用一行SQL query來省掉那10行多餘的php code? 11/02 23:47 : 推 carlcarl:不太是程式多少行的問題 你分一台app 一台mysql 11/03 00:42 : → carlcarl:你把所有資料都傳到app這邊來做 頻寬根本不夠你這樣傳.. 11/03 00:43 ?? web 跟 db 中間的線路除非你們跨很遠, 在同一個機房, 應該都走內網. 通常都不會有這種顧慮... 除你主機還是用很舊的10/100的網卡 之前我用過得機房 或是我最近用的 linode 都不會在意這種問題. 雖然說把資料傳道 web 作有點差, 不過我真得看過... 還是在前公司 幾萬筆資料傳到web去作過濾... 重新排序. 那家公司請 google aff.. 第一筆就是. -- phpconf 大家對工作比較有興趣 XDDDDDD -- Live Long and Prosper -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.109.127.16
MOONRAKER:對mysql的loop沒概念,我就不戳你了。 11/03 13:31
MOONRAKER:HTML都在SQL裡面SELECT出來,跟MVC簡直背道而馳,科科 11/03 13:31
alpe:我都說了很髒... 11/03 14:38
alpe:我對db的loop的卻沒概念請賜教,我只會一點stored func. 11/03 14:41
alpe:如果我在select 寫func裡面內沒loop, 這會要跑loop嗎? 11/03 14:45
carlcarl:我指的是過濾資料的部份 其他資料處理我就沒意見了~~ 11/04 00:32