我有一个响应非常好的 REST Api Codeigniter 服务器。每次通话最多 0.02 秒。 我想启用日志,但是当我这样做时,响应需要多花 20 秒。因此,对于同一进程,需要 20.02 秒。
我发现时间在 REST_Controller.php 文件中的这一行丢失了:
$this->rest->db = $this->load->database($this->config->item('rest_database_group'), TRUE);
加载其余数据库时。
我的数据库文件有 2 个这样的数据库记录:
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
//'dsn' => '',
'hostname' => 'X.X.X.X',
'username' => 'my_user',
'password' => 'my_pass',
'database' => 'my_database',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
$db['rest'] = array(
//'dsn' => '',
'hostname' => 'X.X.X.X',
'username' => 'my_user',
'password' => 'my_pass',
'database' => 'my_database',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
我的配置文件有 $config['rest_database_group'] = 'rest';
日志行写入rest数据库没有任何问题但是比没有日志多了20秒...
有什么想法吗?
感谢您的帮助。 大卫。
最佳答案
感谢您的帮助。我找到了解决方案。
我的 MySQL 服务器出现 DNS 问题。仅仅谈论 IP 地址是不够的。我必须在每台服务器的主机文件中指定我的服务器名称。
20 秒的滞后时间是在 MySQL SQL 上,有一个未经身份验证的用户尝试从我的服务器登录。
DNS 参数问题已解决。
再见!
关于mysql - CodeIgniter REST Api 登录分离的数据库 20 秒以上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50702661/