我在一个相当大的MariaDB 10.0.6数据库(大约200万条记录)上运行一个典型的查询,我希望只返回前几条记录。我使用的'where'语句将匹配不超过5-10条记录。
此声明失败:
$lucky = $this->post->select("ID")->where('luckynumber', '=', '12345')->paginate(1);
而这一个有效(唯一的区别是 - > paginate vs. first ):
$lucky = $this->post->select("ID")->where('luckynumber', '=', '12345')->first();
日志文件表明我的内存不足(我已经增加到512 MB):
[2013-12-11 16:15:39] log.ERROR:500 - 允许的内存大小为536870912字节耗尽(试图分配532152320字节)@ / lucky / 12345 异常'Symfony \ Component \ Debug \ Exception \ FatalErrorException',消息'允许的内存大小为536870912字节耗尽(试图分配532152320字节)'在/ var / www / lbs / app / storage / views / f775c03b70963c0:109
我使用的是Ubuntu Linux 12.04,nginx,php 5.5.6,
有什么问题?
答案 0 :(得分:0)
似乎mariaDB会产生一个临时表。所以要注意索引Coloumn'luckynumber'