> php教程 > php手册 > 본문

PHP通过JAVA桥使用连接池提高性能

WBOY
풀어 주다: 2016-06-06 19:45:42
원래의
1172명이 탐색했습니다.

原文:http://hi.baidu.com/zhangsilly/item/48ee731080ac36cc39cb30ab 我一直在寻求一个连接池解决方案,特别是在主要使用Oracle之后 注意:以下观点仅来自于小量的benchmark 测试环境: 1G RAM Intel Pentium D 2.8G(双核) OS: Windows XP (Linux机器效率

原文: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.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿