PHP通过JAVA桥使用连接池提高性能
来源:互联网 发布:jquery.modal.js 编辑:程序博客网 时间:2024/05/23 11:34
原文:http://hi.baidu.com/zhangsilly/item/48ee731080ac36cc39cb30ab
我一直在寻求一个连接池解决方案,特别是在主要使用Oracle之后
注意:以下观点仅来自于小量的benchmark
测试环境:
1G RAM
Intel Pentium D 2.8G(双核)
OS: Windows XP (Linux机器效率应该高一些,因为Linux可以通过java.so扩展连接Bridge,测试采用Pure PHP的代码连接的Bridge)
PHP:5.29
MySQL5
Oracle 10g
PHP JavaBridge 5.411
Tomcat 6.018
Java SDK 1.60 update 11
自从使用Java桥之后,我一直想为PHP找一个连接池来解决现在遇到的问题(现在很多东西运行在Oracle上,PHP搭配Oracle真的比想象得要慢好多)。很容易,通过php java桥使用连接池非常简单(废话,PHP通过socket和java打交道,将资源交给java管理就可以了),测试结果如下:
对MySQL:
PHP直连MySQL:1100 ~ 1300 次请求/秒
PHP通过Java桥、DBCP连接MySQL:250 ~ 300 次请求/秒
对Oracle:
PHP直连:30 ~ 33 次请求/秒
PHP通过Java桥、DBCP连接Oracle:120 ~ 135 次请求/秒
上面的测试,发现如果使用MySQL的话,还真是用不着数据库连接池(这种通过Bridge的中间环节过多,还设计到数据的包装、解包操作)。如果使用Oracle的话,数据库连接池就大有可为了(即使增加了本地的请求,数据包装、解包等操作,仍然还是值得的),使用连接池之后,性能真的大幅上升(并未采用 prepareStatement 软解析预编译语句、SQL语句全部 hard code, 没有开启 poolPreparedStatements 缓冲)。
数据库连接池直接采用Tomcat自带的DBCP完成,配置默认,增加removeAbandoned=true validationQuery="select 1 from dual"。为保证公平性,直连、Bridge均执行想听那个的SQL并完成绝对相同的流程。
- PHP通过JAVA桥使用连接池提高性能
- PHP使用连接池提高性能(mysql不需要,Oracle连接速度很慢)
- SqlConnection,使用连接池提高数据库性能
- 使用mysql连接池提高性能
- 通过缓存数据库结果提高PHP性能
- php使用memcache提高性能
- java通过缓冲区提高I/O性能
- 连接缓冲池提高数据库性能
- 使用临时变量提高Java代码性能
- Java中通过缓冲区提高I/O性能
- 提高php性能细节
- 使用 ProxySQL 提高 MySQL SSL 的连接性能
- 使用 ProxySQL 提高 MySQL SSL 的连接性能
- PHP中使用hidef扩展代替define提高性能
- JAVA基础:使用缓冲IO提高Java程序性能
- JAVA提高性能经验总结
- 提高JAVA的性能
- 提高java的性能
- 自定义UILabel,接受触摸事件
- url参数中的乱码问题
- FLex 超链接另一个Web系统
- [LeetCode] 3Sum Closest
- C中几个常见的测试字符的函数
- PHP通过JAVA桥使用连接池提高性能
- stardict词典全集
- iOS 下拉刷新
- Java Ant build.xml详解
- 解决 Name node is in safe mode
- Ant的使用
- 浮点数字格式化化
- 直通车的10大谎言和真相你知道多少?
- 几时苍凉醉情殇