使用ORM从远程数据库查询(即Eloquent)

时间:2015-04-25 14:23:11

标签: php mysql laravel laravel-4

我最近遇到过这样一种情况:从两个表中查询每个表有大约16k的记录。

执行原始SQL会导致响应时间缩短到几秒钟,如果我选择坚持使用ORM查询,则会导致nginx请求超时,因为查询需要超过1分钟才能处理。

有没有人遇到类似的情况,我知道可以使用Doctrine进行繁重的查询。

实现看起来像这样。有关正在使用的体系结构的更详细说明:https://stackoverflow.com/a/19771835/540771

Laravel App默认连接连接到DB 1(具有连接到DB 2的详细信息)。根据正确的连接连接到适当的DB。

DB 1:

connections table ( id, db_name, db_username, db_password, hostname, port)

DB 2:

customer ( customer_id, name )
customer_details ( customer_id, email, etc ... ) 

查询在DB 2上执行,如下所示:

SELECT * 
FROM customers as c LEFT JOIN customer_details as cd 
ON c.customer_id=cd.customer_id
ORDER BY c.created_at DESC

表客户和客户详细信息的行数均为16k。关系是1 .. *,但业务规则以某种方式限制它,以便始终有1个客户记录映射到1个customer_details记录中。

获取到Datatable中的结果。将添加分页以限制返回的记录数。

0 个答案:

没有答案