当我的意思是"大"它唯一的~25000 rows
...
我有一个重量级为5 Mb
的大表,在尝试列出所有数据并查看信息时,PhpMyAdmin会显示以下错误:
致命错误:允许的内存大小为134217728字节耗尽(尝试过 分配29050028个字节) /Library/WebServer/Documents/phpmyadmin/libraries/DisplayResults.class.php 在第2561行
它只有25K
行,它会超过100K
时会是什么?
我已经在线查看如何解决这个问题,并且我已将PHP.ini
中的资源限制提高到:
;;;;;;;;;;;;;;;;;;; ;资源限制; ;;;;;;;;;;;;;;;;;;;
每个脚本的最长执行时间,以秒为单位; http://php.net/max-execution-time;注意:该指令是硬编码的 CLI为SAPI max_execution_time = 1000
为0每个脚本可能花费在解析请求数据上的最长时间。 这很好;想要按时间限制生产服务器上的这个时间 意外消除;长期运行的脚本。 ;注意:这个 对于CLI SAPI,指令被硬编码为-1;默认值:-1 (无限制);发展价值:60(60秒);产值: 60(60秒); http://php.net/max-input-time max_input_time = 1000
最大输入变量嵌套级别; http://php.net/max-input-nesting-level; max_input_nesting_level = 64
可以接受多少GET / POST / COOKIE输入变量 max_input_vars = 10000
脚本可能消耗的最大内存量(128MB); http://php.net/memory-limit memory_limit = 128M
但没有改变。
请帮忙。
由于
答案 0 :(得分:1)
你得到的这个错误
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 29050028 bytes) in /Library/WebServer/Documents/phpmyadmin/libraries/DisplayResults.class.php on line 2561
表示您的脚本超过了已设置的128M内存限制。因此,php.ini中任何有意义的增加都应该高于128M。 256M应该是你的下一步。请记住在执行此操作后重新启动apache或fastcgi服务。
当将表导出到sql,csv或电子表格时,PHPMyAdmin能够处理无限量的数据。在显示带有ajax更新和坚韧按钮的漂亮交互式网格时,它无法处理那么多数据。那是因为表的内容被注入到一个对象中,并且该对象必须将整个内容保存在内存中,直到它呈现为止。
如果10000行的数量超过128M,则PHP无法在变量中保存该信息。这不是PHPMyadmin的错。