easy-swoole / easyswoole

swoole,easyswoole,swoole framework
https://www.easyswoole.com/
Apache License 2.0
4.74k stars 510 forks source link

v3.0 Mysql数据库连接池问题 #189

Closed GnixSung closed 5 years ago

GnixSung commented 5 years ago

当协成获取连接池连接为空时 是否可以使用EasySwoole\Mysqli处理此协成获取不到Mysql连接问题 $db = PoolManager::getInstance()->getPool($this->_mysqlPoolClass)->getObj(Config::getInstance()->getConf("database.{$this->_dbName}.pool_time_out")); if($db instanceof MysqlObject) { $this->_db = $db; } else { //如果连接池为空的话 //使用swoole异步Mysql连接 $dbConfig = Config::getInstance()->getConf('database.'.toUnderScore($this->_dbName)); $this->_db = new Mysqli($dbConfig); }

kiss291323003 commented 5 years ago

说明你还说没有懂连接池的意义。连接池其实是等于降级保护数据库的

GnixSung commented 5 years ago

我的理解连接池是 “为了节省创建mysql连接的开销可复用,如果连接池为空的情况则再额外创建连接防止上层逻辑完成失败”

GnixSung commented 5 years ago

当你无法准确的估算出当前项目连接池需要预加载连接池多少连接数时,我觉得此操作是可行的 防止获取连接失败导致逻辑上的错误

windrunner414 commented 5 years ago

你的理解有问题,这种做法不可取