laravel – 雄辩的ORM表现

我刚刚在Laravel中测试了Eloquent ORM的性能,并且惊讶地发现一个简单的查询需要花费超过3秒的时间来执行,而普通的Laravel查询在0.1秒内完成.我只返回1500条记录.

DB::table('t_organisations')->get();  -  0.12253594398499 seconds
Organisation::all();   -   3.6389181613922 seconds

当然这不正常!?我不认为我在设置中遗漏了任何东西.我的数据库已标准化.可能是什么问题呢?

最佳答案
感谢你的回复.

这是mysql查询日志的结果:

组织::所有(); – 1.6772060394287秒

130710  9:52:43     5 Connect   seltec@localhost on seltec
            5 Prepare   set names 'utf8' collate 'utf8_unicode_ci'
            5 Execute   set names 'utf8' collate 'utf8_unicode_ci'
            5 Close stmt    
            5 Prepare   select * from `users` where `id` = ? limit 1
            5 Execute   select * from `users` where `id` = '2' limit 1
            5 Close stmt    
            5 Prepare   select * from `t_organisations`
            5 Execute   select * from `t_organisations`
130710  9:52:44     5 Close stmt    
130710  9:52:45     5 Quit

DB:表( ‘t_organisations’) – >获得(); – 0.13963603973389秒

130710  9:55:16     6 Connect   seltec@localhost on seltec
            6 Prepare   set names 'utf8' collate 'utf8_unicode_ci'
            6 Execute   set names 'utf8' collate 'utf8_unicode_ci'
            6 Close stmt    
            6 Prepare   select * from `users` where `id` = ? limit 1
            6 Execute   select * from `users` where `id` = '2' limit 1
            6 Close stmt    
            6 Prepare   select * from `t_organisations`
            6 Execute   select * from `t_organisations`
            6 Close stmt    
            6 Quit

那么没有区别….这意味着延迟必须在Eloquent php代码中.是的,我安装了xdebug,不,我不准备浪费时间试图找出它为什么慢!如果它在查询构建器中更快,那对我来说就足够了!

@Laravels的开发人员:在框架方面做得很好.它非常直观,可以很好地处理授权,尤其是Leroy Merlin的密友和委托插件.你可能想看一下Eloquent性能问题!!

干杯!
克雷格

转载注明原文:laravel – 雄辩的ORM表现 - 代码日志