我必须在带有CakePHP的600 000+行的表(MySQL)上执行sql请求。 我在本地测试如何处理这张巨大的桌子。
当我第一次尝试使用简单的->find('all')
时,使用CakePHP,我在缓冲区大小方面遇到了很多错误。
我添加
ini_set("memory_limit", "-1");
set_time_limit(0);
在我的index.php中
现在,我的页面加载了很长时间然后崩溃。
当我尝试->find('first')
获取第一行时,同样的事情:页面加载很长时间后会遇到错误。
你有什么想法吗?
答案 0 :(得分:4)
你有什么想法吗?
很明显,您无需处理某些技术限制即可处理大量数据。 600k行,取决于它们如何呈现,甚至客户端(浏览器)可能会变得非常慢。
改变你对此的态度,它不会以这种方式运作良好。或者说几个 服务器中有一百GB的RAM。
设置ini_set("memory_limit", "-1");
从不一个解决方案,但是一个非常简单的解决方法。而是确保您的脚本始终在某些预定义的边界内工作。这样可以确保脚本在64mb的服务器上爆炸,但是在128mb的服务器上运行,然后在获得更多数据的情况下也可以在128mb的那个上爆炸。