Mysql phpMyadmin超时问题

问题描述:

我在Mysql中有一个非常大的数据库。我需要这样维护它。例如它在Innodb中的约30万条记录。Mysql phpMyadmin超时问题

我将记录解析到数据库中,但现在我需要通过将一些字段类型(例如long int)转换为tinyint或其他东西来优化它。当我运行这个通过phpMyadmin连接6分钟后暂停,我得到一个连接超时错误?

由于PHP发送请求到MySQL不应该只是做它的事情做它的事情,无论什么,直到它完成?所以即使php页面超时,它仍然会完成?或者当连接超时Mysql只是放弃了请求?

我需要通过PHP在数据库上运行过滤器,我希望能够每隔30秒更新一次页面,并发现新的结果,作为它继续搜索的结果,但如果用户导航,我仍然希望完成搜索,因为它为该用户创建了一个表格。因此,如果他们在回来时运行查询并关闭浏览器,它会继续搜索吗?

如果用户运行文本搜索,我以前从来没有用过这样的大分贝,我知道这需要很长时间。任何见解/技巧或指导将不胜感激。

感谢

+0

@ user685590 +1的问题是您使用 – eisberg 2011-03-31 11:36:27

+0

什么是什么phpMyAdmin的版本你的MySQL服务器的InnoDB选项如缓冲池大小? – 2011-03-31 13:04:18

您通常也可以在服务器本身上使用mysql客户端。它往往是我进口大型数据库的最爱。

mysql -u user -p -h localhost dbname < import.sql 

或者你的情况去命令提示符(相同phpmyadmin的SQL窗口:?

mysql -u user -p -h localhost dbname 
+0

感谢您的建议。可能需要提及的是您需要将import.sql访问并加载到您的服务器。 – kontur 2012-08-30 07:18:00

In InnoDB, all user activity occurs inside a transaction.因此,如果查询不会成末,该交易将不被提交,将阔叶。

尽管如此,在PHP中,即使用户正在停止网页,也可以让脚本继续。它通过功能ignore_user_abort()完成。

但我认为phpMyAdmin不会提供ignore_user_abort功能。

另一种解决方案是使用异步MySQL查询,但我认为它不是PHP(可能)。 Maybe here,但不在phpMyAdmin中。