数据库持久连接小记
2012-05-10 01:52
197 查看
本机环境:Apache+PHP+MySQL
先了解一下背景知识,Apache采用父进程调度多个子进程模式处理请求, 每当客户端向父进程提出请求时,该请求会被传递给还没有被其它的客户端请求占用的子进程。相同的客户端第二次向服务端提出请求时,它将有可能被一个不同的子进程来处理。
在使用了MySQL持久连接后,子进程会持有一个数据库持久连接,持久连接在脚本运行结束后不会关闭,可以通过mysqladmin -uroot -ppass processlist命令查看.如果在查询时Apache分配了持有这个持久连接的子进程来处理请求,则不需要重新建立新连接,否则新的子进程重新建立持久连接来处理数据库查询.
下面说说持久连接适用和不适用情况
1.适用
如果Web Server需要查询的db只有一个,并且并发量很大,那么可以使用持久连接,这样可以减少关闭和建立连接的次数,提高效率
2.不适用
如果Web Server需要查询的db有两个,假设有db1和db2,db1查询量小,db2查询量大,使用持久连接,最大连接数为10.
此时用户先查询了db1,并且在Web Server的9个子进程都与db1建立了持久连接,那么此时只剩下1个可用连接,此时用户又去查询db2,因为db2的查询量大,却只能使用一个连接,这时效率就会低了
先了解一下背景知识,Apache采用父进程调度多个子进程模式处理请求, 每当客户端向父进程提出请求时,该请求会被传递给还没有被其它的客户端请求占用的子进程。相同的客户端第二次向服务端提出请求时,它将有可能被一个不同的子进程来处理。
在使用了MySQL持久连接后,子进程会持有一个数据库持久连接,持久连接在脚本运行结束后不会关闭,可以通过mysqladmin -uroot -ppass processlist命令查看.如果在查询时Apache分配了持有这个持久连接的子进程来处理请求,则不需要重新建立新连接,否则新的子进程重新建立持久连接来处理数据库查询.
下面说说持久连接适用和不适用情况
1.适用
如果Web Server需要查询的db只有一个,并且并发量很大,那么可以使用持久连接,这样可以减少关闭和建立连接的次数,提高效率
2.不适用
如果Web Server需要查询的db有两个,假设有db1和db2,db1查询量小,db2查询量大,使用持久连接,最大连接数为10.
此时用户先查询了db1,并且在Web Server的9个子进程都与db1建立了持久连接,那么此时只剩下1个可用连接,此时用户又去查询db2,因为db2的查询量大,却只能使用一个连接,这时效率就会低了
相关文章推荐
- java 连接oracle 11g数据库SID问题解决小记
- 初学rman问题小记一:rman连接数据库ORA-12528
- 数据库持久连接理解
- 关于“持久的数据库连接”
- 数据库持久PHP连接 (初识)
- PHP连接数据库时编码的设置
- JSP中使用JDBC连接各种数据库(转)
- iReport数据库连接找不到驱动
- 数据库连接driverClass和jdbcUrl大全
- 数据库连接_基础版
- 数据库连接加密
- 浅析JAVA常用JDBC连接数据库的方法总结
- mssql数据库连接oracle数据库感想
- 一次web 服务器无法连接上oracle 数据库的故障处理
- 经常使用的JDBC连接数据库方式
- 常用数据库JDBC连接写法
- 数据库连接字符串的一个问题
- linux下命令行可以连接远程数据库而php的mssql_connect()却不可以的解决方案及linux对外远程访问拒绝
- php连接数据库
- python使用mysqldb连接数据库操作方法示例详解