我正在相当大的MariaDB 10.0.6数据库(约200万条记录)上运行典型查询,在该数据库中我只想返回前几条记录。我正在使用的“ where”语句将匹配不超过5-10条记录。
该语句失败:
$lucky = $this->post->select("ID")->where('luckynumber', '=', '12345')->paginate(1);
而这有效(唯一的区别是-> paginate与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
/ var / www / lbs / app / storage / views / f775c03b70963c0:109中的异常'Symfony \ Component \ Debug \ Exception \ FatalErrorException',消息为'已耗尽536870912字节的内存容量(试图分配532152320字节)'
我正在使用Ubuntu Linux 12.04,nginx,php 5.5.6,
问题是什么?
最佳答案
似乎mariaDB会生成一个临时表。因此请注意为“幸运数字”列编制索引