【讨论】大家说说php+mysql使用存储过程的优缺点

For_Ning 2011-08-30 02:30:31
一直在项目中都没用过
看过一些开源系统也没用过存储过程
都是sql 一条条执行
在php项目中 使用存储过程需要吗
使用存储过程应该可以提高速度 减轻web服务器压力
但同时增加了数据库服务器负荷 个人理解
这方面比较有经验的同学说说看
一起讨论下吧。
...全文
434 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuheidechuan 2014-03-20
  • 打赏
  • 举报
回复
存储过程是否可以提高跨服务器的性能? 比如php和mysql分别布置在不同服务器上的时候,如果php一条一条的执行,会有很多次跨服务器的调用,网络时延比较大;但如果用存储过程,php调用一次就行了。
hbwhypw 2012-08-25
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 的回复:]
一说存储过程,让我想起毕业时找实习单位,有这么一家公司,面试的主管还很漂亮。可她出的题就是写一个存储过程的登录模块。所以有一点抵触了。^_^.
不过话说回来,高负载,高并发网站应该用不到,高并发一般都用主从、LVS、中间件、垂直分库、水平分表。
流行的使用nosql,即使用非关系型数据库,关于这个一般大型网站都在用。推荐一个redis。
[/Quote]
存储过程一方面提高了sql编译效率,另一方面还可以在这里处理复杂业务逻辑。
你说的那些都是说在高负载,高并发条件下,如何解决性能的问题,却不能解决处理复杂业务逻辑的问题。
对与redis,我花了一点时间学习过,想处理复杂业务逻辑,难!
码无边 2011-09-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 kxn308 的回复:]

引用 7 楼 zy205817 的回复:

有点伤性能!

是提高性能吧-。-
[/Quote]那你所有的操作,干脆写存储过程算啦。有利有弊!
码无边 2011-09-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 kxn308 的回复:]

路过的大哥小哥 前辈专家等等
说说看法吧,其实我想听比较专业的分析
谢谢啦
[/Quote]同时增加了数据库服务器负荷
狄默默斯基 2011-09-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 coolesting 的回复:]

有了memcache和静态页面,存储过程就成了鸡肋,

储存过程不是不好, 就是修改麻烦, 特别动态脚本, 改一下又要导入数据库, 倒来倒去, 简直是倒蛋,

否则, 现在人人都写储存过程, 不写sql查询语句了。
[/Quote]

up++

我写的存储过程在phpmyadmin里无法导入,一定要执行mysql_query才能导入,我擦
For_Ning 2011-09-05
  • 打赏
  • 举报
回复
谢谢楼上几位大哥的回答
聪明的一休 2011-09-05
  • 打赏
  • 举报
回复
首先看你的项目数据库的操作是否复杂,开发人员对数据库编程是否深入

存储过程本身是提高性能的,只是对于简单的项目有些大材小用

还有,你用存储过程的优势能封装事务,当然也是以操作复杂为前提的
For_Ning 2011-09-05
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 zy205817 的回复:]

引用 8 楼 kxn308 的回复:

引用 7 楼 zy205817 的回复:

有点伤性能!

是提高性能吧-。-
那你所有的操作,干脆写存储过程算啦。有利有弊!
[/Quote]
有利有弊 结合项目
有些简单的没必要当然不必啦
性能上还是会提高的
craboy1 2011-09-05
  • 打赏
  • 举报
回复
一说存储过程,让我想起毕业时找实习单位,有这么一家公司,面试的主管还很漂亮。可她出的题就是写一个存储过程的登录模块。所以有一点抵触了。^_^.
不过话说回来,高负载,高并发网站应该用不到,高并发一般都用主从、LVS、中间件、垂直分库、水平分表。
流行的使用nosql,即使用非关系型数据库,关于这个一般大型网站都在用。推荐一个redis。
For_Ning 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zy205817 的回复:]

有点伤性能!
[/Quote]
是提高性能吧-。-
骄傲青蛙 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xuzuning 的回复:]

看过一些开源系统也没用过存储过程,都是sql 一条条执行

不是所有数据库都支持存储过程的,比如 mysql4 就不支持
而且不同的数据库对于存储过程的语法也是有差异的


在php项目中 使用存储过程需要吗

存储过程可以极大的提高算法的效率,如果可能的话,那就用吧

使用存储过程应该可以提高速度 减轻web服务器压力

这是必然的

但同时增加了数……
[/Quote]


它们都必然有开销,但不一样 :


功能上好比php的内置函数,和外置函数的区别,
用法上好比编译语言和解释语言的区别。


特别是敏捷开发时代, 储存过程为了提高性能,
如果修改一下编译一次, 修改一下编译一次, 这些开销真是不知从何谈起。




骄傲青蛙 2011-08-31
  • 打赏
  • 举报
回复
有了memcache和静态页面,存储过程就成了鸡肋,

储存过程不是不好, 就是修改麻烦, 特别动态脚本, 改一下又要导入数据库, 倒来倒去, 简直是倒蛋,

否则, 现在人人都写储存过程, 不写sql查询语句了。
码无边 2011-08-31
  • 打赏
  • 举报
回复
有点伤性能!
phf0313 2011-08-31
  • 打赏
  • 举报
回复
在mysql里没用过存储过程。
xinjian555 2011-08-31
  • 打赏
  • 举报
回复
所做的项目一直在用存储过程,

相对来说,维护比较方便
xuzuning 2011-08-31
  • 打赏
  • 举报
回复
看过一些开源系统也没用过存储过程,都是sql 一条条执行

不是所有数据库都支持存储过程的,比如 mysql4 就不支持
而且不同的数据库对于存储过程的语法也是有差异的


在php项目中 使用存储过程需要吗

存储过程可以极大的提高算法的效率,如果可能的话,那就用吧

使用存储过程应该可以提高速度 减轻web服务器压力

这是必然的

但同时增加了数据库服务器负荷 个人理解

这个理解是错误的,那些 一条条执行的sql 就不需要数据库服务器的开销吗?


For_Ning 2011-08-30
  • 打赏
  • 举报
回复
路过的大哥小哥 前辈专家等等
说说看法吧,其实我想听比较专业的分析
谢谢啦
For_Ning 2011-08-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xjl756425616 的回复:]

话说用处还真是不大,,既然有这个功能,那就用用吧,唯一的解释就是避免重复写sql语句。
[/Quote]
还是谢谢说了自己看法。
For_Ning 2011-08-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xjl756425616 的回复:]

话说用处还真是不大,,既然有这个功能,那就用用吧,唯一的解释就是避免重复写sql语句。
[/Quote]
-。- 怎么用处不大了
在一些方面用处大着呢 安全方面
还有它是编译好的 不用每次解析 编译
就是会增加数据库负荷

狄默默斯基 2011-08-30
  • 打赏
  • 举报
回复
话说用处还真是不大,,既然有这个功能,那就用用吧,唯一的解释就是避免重复写sql语句。
加载更多回复(2)

21,893

社区成员

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

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