mysql - CodeIgniter REST Api 登录分离的数据库 20 秒以上
问题描述
我有一个响应非常好的 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';
日志行写入其余数据库没有任何问题,但比没有日志多 20 秒...
有任何想法吗?
谢谢你的帮助。大卫。
解决方案
谢谢你的帮助。我找到了解决方案。
我的 MySQL 服务器出现 DNS 问题。仅与 IP 地址交谈是不够的。我必须在每台服务器上的主机文件中指定我的服务器名称。
20 秒的延迟时间在 MySQL SQL 上,尝试从我的服务器登录未经身份验证的用户。
DNS 参数的问题消失了。
再见 !
推荐阅读
- http - 有没有办法通过 curl 请求 .mov 文件而无需手动设置 mimetype?
- rust - 与复制类型的借用特征相反?
- html - 网格布局无法对齐
- reactjs - 图像映射以在悬停时获取特定数据图像
- excel - VBA - 如何使 For 循环更快
- python - 返回 None 而不是 False
- postgresql - 锁定选定的行直到更新操作
- r - 在文本段落中搜索单词,然后在 R 中标记它们
- android - 从登录屏幕导航到 Drawer.Navigator 第一个屏幕 无法从一个屏幕导航到抽屉导航
- javascript - 如何在firestore react native中以时间戳形式返回日期部分