我正在使用CodeIgniter来实现我的API。请查找使用的服务器资源和技术如下:
概要
Framework : CodeIgniter
Database : MySQL (Hosted on RDS)
Hosting : AWS t2.Micro
Web Server : Nginx
我按照以下链接使用2个Slaves和1个主数据库
CodeIgniter configure different IP for READ and WRITE MySQL data
我在每个控制器中使用以下内容来建立数据库连接。
$DB1_READ = $this->load->database('READ', TRUE);
$DB2_READ = $this->load->database('READ', TRUE);
$DB3_WRITE = $this->load->database('WRITE', TRUE);
我也在Database.php文件中使用不同的READ和WRITE连接:
2个READ SERVERS和1个WRITE SERVER(MASTER)
问题
当我在控制器中加载数据库时,当我只调用我的READ数据库时,它正在与WRITE服务器进行WRITE连接。
我应该在哪里调用$this->load->database
,这样如果我只是从READ数据库执行READ查询,那么它就不应该转到WRITE服务器,导致WRITE服务器失败。
它正在WRITE打开一个不需要的连接,这反过来增加了我的主数据库上的负载。根据AWS RDS,我只能拥有1个Master,所以这对我来说是一个巨大的问题,因为我的MASTER每次都会死掉。