请做过大型PHP网站的高手赐教!

sunworld 2007-05-15 11:48:22
这是个简单却难以回答得圆满的问题:
做一个大型的网站,就是LAMP系统,在程序后台有很大的计算量,这些计算量都要访问MySQL数据库。请问,在做设计时,这些大计算量的程序,是放在PHP里用一些PHP自定义函数来实现更好,还是做成MySQL的存储过程和触发器,用MySQL的存储过程和触发器来实现更好?

类似的,比如我用SQL Server 2000 + C#来开发一个大型网站,或者功能型网站,最好把需要大量计算的部分放在SQL Server 2000的存储过程和触发器里实现,而前台使用C#来调用这些存储过程和触发器。但是PHP + MySQL的情况可能不一样,这一点因为我没有做过PHP + MySQL的大型网站,所以不清楚是否该采用这样的方法来设计。

我是基于这么考虑的:
第一,使用存储过程和触发器,减少外部程序对数据库的访问,就少了PHP对MySQL数据库N次访问的时间消耗。

第二,使用预编译的SQL语句,也许对MySQL来说执行效率会更快一些。

我的犹豫是:
第一,某些地方的说明是,PHP的处理速度非常快,要高于数据库的处理速度,如果我使用PHP本身来做大量的计算,可能相反速度高于使用数据库的计算速度

第二,某些地方的说明是,MySQL的存储过程能力还不是很成熟,这一点是否会影响到MySQL对预编译的SQL语句的执行效率。


需要说明的是,我眼下用的开发调试平台是:
WindowsXP + IIS5 + PHP5.2 + MySQL5.0
...全文
633 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
huzhangyou 2007-05-18
  • 打赏
  • 举报
回复
http://www.libing.net.cn/read.php/1163.htm
qishiwobuguai 2007-05-18
  • 打赏
  • 举报
回复
还是用多服务器的运载平衡来解决这个问题 程序上是要优化 数据库也要优化 可是这都是有限度的 不可能无止境的优化再优化。应该将注意力转移到服务器上来
wanbb 2007-05-18
  • 打赏
  • 举报
回复
在程序上大家能够挤出多少效率呢?除非是新手一般有点道行的在软件方面都注意到了
如果是大型网站那硬件也必须跟上,所以我的解决方法就是在硬件上,尽可能的把最常用的应用单独放到一台服务器上,网站和数据库要用集群,有条件的话直接上阵列,程序上静态化,这样的做法一般的大型网站还是可以胜任的,但如果并发数达到5w或更大的话就只能再加服务器或用其它办法了,具体可以参考google的做法。
PleaseDoTellMeWhy 2007-05-17
  • 打赏
  • 举报
回复
我不建议换数据库, 这是一个如何减少数据查询次数和减轻服务器负荷的问题!
建议有些不需要经常更改的数据可以做成缓存文件, 可以减少访问MySQL 的次数!
还有如果Money够多的话, 数据库服务器可以用独立的主机!
robertvvv 2007-05-17
  • 打赏
  • 举报
回复
marking,很关注php与mysql之间的问题,非常有嚼头
mynamesucks 2007-05-17
  • 打赏
  • 举报
回复
一般来说,大型网站都是多台服务器做load balance的
并且数据库的服务器和程序服务器是分开的,甚至连数据库服务器都有负载平衡
我个人觉得网站的规模大到一定限度的时候,在软件上的提高也就这么点了,反而硬件上的提高才是最重要的
yingying0808 2007-05-17
  • 打赏
  • 举报
回复
关键地方,多用cache,对数据库减压很有帮助的
striker_un 2007-05-17
  • 打赏
  • 举报
回复
第一,使用存储过程和触发器,减少外部程序对数据库的访问,就少了PHP对MySQL数据库N次访问的时间消耗。

==>嗯:这个是减小交互量,数据库的压力并未真实的减少,相反大量用存储过程,触发器,对数据库的压力反而加大。

第二,使用预编译的SQL语句,也许对MySQL来说执行效率会更快一些。
==>嗯:希望在每句sql 执行前先explain 一道。对大量数据不怎么更新的数据,可以转成全文检索类型,(要加个中文补丁) 长期对表进行维护。没有企业级需求时数据库不要用innodb 存储引擎。

我的犹豫是:
第一,某些地方的说明是,PHP的处理速度非常快,要高于数据库的处理速度,如果我使用PHP本身来做大量的计算,可能相反速度高于使用数据库的计算速度.


第二,某些地方的说明是,MySQL的存储过程能力还不是很成熟,这一点是否会影响到MySQL对预编译的SQL语句的执行效率。

总之优化大型网站我所知道的必要的几个东西.
1 crond 用计划任务来处理一些东西。使数据库压力分散。
2 网站静态化。减少访问数据库次数。
3 查询优化。
4 数据库集群,(服务器不够?先做个M/s结构,让s来分担search 任务。)
sinohousing 2007-05-17
  • 打赏
  • 举报
回复
PHP开发人员
招聘人数2-3名
职位描述: 基于 PHP + MySQL 开发网站程序
任职资格 :
1、精通使用 Apache + PHP + MySQL进行WEB的开发;
2、掌握UML,至少熟练掌握一种UML建模工具;
3、具有文档编写能力,面向对象的编程思想,优良的编程风格和习惯;
4、计算机相关学历;有两年以上的php脚本开发经验;
5、对软件开发工作有富有热情,工作责任心强,富于团队精神和敬业精神;

待遇根据能力定薪金,具体待遇面议,保证不低于同行业水平,有意者请发电子邮件到Email:hr@sinohousing.com
工作地点:
北京望京科技园利泽中园或北京电子城科技园区 [靠近望京和酒仙桥地区]
tony-杨 2007-05-17
  • 打赏
  • 举报
回复
......
连接查询次数多的可以生成缓存吧

或者学google自己做个WEB服务

-_-!
uuq 2007-05-17
  • 打赏
  • 举报
回复
有多大,google不是还是在使用mysql
跟人有关
luojxun 2007-05-16
  • 打赏
  • 举报
回复
你做LAMP你还不配置一个环境啊
---这不是大问题.php也有很好的跨平台性
ahu201 2007-05-16
  • 打赏
  • 举报
回复
"在程序后台有很大的计算量"---如果只是后台的工作,可以考虑做APACHE的模块控制数据库。

加数据库函数主要用来处理网页实时统计显示数据没办法的选择,比用PHP快。

需要说明的是,我眼下用的开发调试平台是:
WindowsXP + IIS5 + PHP5.2 + MySQL5.0
-----晕,你做LAMP你还不配置一个环境啊。
ashchen 2007-05-16
  • 打赏
  • 举报
回复
大型网站还是别考虑mysql了
postgresql
或者oracle
li1229363 2007-05-16
  • 打赏
  • 举报
回复
win下的apache,效率还是挺好的。IIS……等zend开发出来提高IIS运行PHP的效率的加速器来吧

不过听说已经在开发了
wasuka 2007-05-16
  • 打赏
  • 举报
回复
WAMP与LAMP的效率差的不是一星半点,更别说WIMP了
ganima 2007-05-16
  • 打赏
  • 举报
回复
大型应用就得LINUX
WIN很大部分是为了迎合以前的ASP用户而产生的.

iasky 2007-05-16
  • 打赏
  • 举报
回复
php可以夸平台,后台的C呢?apache的模块呢?
Thaiki 2007-05-16
  • 打赏
  • 举报
回复
mark 学习中...
fxs_2008 2007-05-16
  • 打赏
  • 举报
回复
帮顶
加载更多回复(3)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧