MySQL服务器与客户端连接,服务器就会用户这个连接的线程,该链接的SQL语句的执行都在该线
程中完成。
当客户端(应用)连接服务器时,都会进行用户名、原始主机信息和密码的认证。服务器链接成功
后就有相关的执行权限。
MySQL的连接认证的时间相对比较短,因为服务器本身就要缓存线程(还有支持线程池的插件)。
有时我们还是会尽量的减少认证时间,一次连接服务器就一直挂载着该线性, 每当应用需要使用
数据库操作时就立即使用该线程,而不需要再次的连接认证服务器。
MySQL服务器配置
wait_timeout=28800
也就是数据库连接池最长空闲时8个小时,8个小时后该链接就会失效。 这里也可以修改过期时间
但不管wait_timeout设的值有多大,最大的解析式2147483,也就超过这个值是无效的,会当做
2147483来使用。
对于一些执行语言就很难保持连接状态, 比如php的使用一般是执行一次请求又释放,
还好php+mysql连接时间不长。相比Oracle来说连接认证时间就长多了,所以一般很难见到
用php+Oracle来开发的。
数据库连接池,也就是初始化时,应用程序保存多个连接线程,这样就可以在并发的同时使用
多个连接线程,而不需要等待或者再次增加连接。
虽然MySQL连接认证的用时很少,但加上连接池的使用就会更加的节约时间。由于PHP这样的
执行语言是很难保持连接状态,PHP就没有连接池的慨念。但php可以和其他连接池(如JAVA的
连接池)整合使用,这个对于Oracle数据库会节约很多时间,对于MySQL来说提升的时间就很
少了,所以就没有必要通过别的连接池来刻意��使用。
该贴由hui.chen转至本版2014-11-5 16:11:51