作者alpe (薛丁格的猫)
看板PHP
标题Re: [请益] 用PHP做运算 还是用MYSQL做运算 ?
时间Sat Nov 3 10:33:32 2012
※ 引述《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
1F:→ MOONRAKER:对mysql的loop没概念,我就不戳你了。 11/03 13:31
2F:→ MOONRAKER:HTML都在SQL里面SELECT出来,跟MVC简直背道而驰,科科 11/03 13:31
3F:→ alpe:我都说了很脏... 11/03 14:38
4F:→ alpe:我对db的loop的却没概念请赐教,我只会一点stored func. 11/03 14:41
5F:→ alpe:如果我在select 写func里面内没loop, 这会要跑loop吗? 11/03 14:45
6F:推 carlcarl:我指的是过滤资料的部份 其他资料处理我就没意见了~~ 11/04 00:32