我看很多php程序连接数据库部分都一个
db.php 里面内容
try {
$pdo = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password');
} catch (PDOException $e) {
echo $e->getMessage();
}
然后别的需要查数据库的地方,例如list.php,action.php文件
就直接引入 db.php 文件,调用里面 $pdo 对象,
这样是不是每次访问list.php,action.php 都会重新连接一次数据库,
这样效率不是会很低?
有没有类似Java之类的,直接把 $pdo对象放spring管理,就启动的时候初始化一次,
用的时候,可以直接获取对象,之后一直不会重复连接数据库
状态
的,把它序列化隔段时间反序列化再拿出来,说实话我没试过,不知道这个状态能否维持。 连接池快的原因在于,所有状态都已经准备好了且随时可用,而且他放在程序本身的内存空间内,这速度比起你单独和Redis发生一次IO,千差万别。
~~~
@HongKongDoll,workerman了解下,就是你说的长链接,注意内存变量也是持久性的,下一个用户会读取到上一个的变量,
@HongKongDoll 这个要看你怎么用PHP了,像你说的 java 如果我没理解错的话应该是
连接池
,java 常驻内存执行,所以后台维护一个连接池性能优化很大;但是像 php-fpm 这种,在一个生命周期内维护一个连接池
,着实有点难为人;但是如果你用 php swoole这种常驻运行,同样可以做到你说得 java的效果。~~~