首页 > 解决方案 > 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 秒...

有任何想法吗?

谢谢你的帮助。大卫。

标签: mysqldatabasecodeigniter

解决方案


谢谢你的帮助。我找到了解决方案。

我的 MySQL 服务器出现 DNS 问题。仅与 IP 地址交谈是不够的。我必须在每台服务器上的主机文件中指定我的服务器名称。

20 秒的延迟时间在 MySQL SQL 上,尝试从我的服务器登录未经身份验证的用户。

DNS 参数的问题消失了。

再见 !


推荐阅读