导入到db时,php或mysql卡住了

时间:2014-12-30 13:54:11

标签: php mysql

我们有一个运行此控制台命令的php脚本

cat import.sql | mysql -u user -ppassword

所以它只是将文件导入数据库

文件很大~120 mb

但它只包含插入/替换查询 喜欢这个:

/*!40000 ALTER TABLE `actionList` DISABLE KEYS */;
REPLACE INTO `actionList` VALUES (1,'buttonClick','Click on a button'),(2,'buttonClose','Click on the close button');
/*!40000 ALTER TABLE `actionList` ENABLE KEYS */;

我从代码中删除了锁表。

现在,当这个脚本运行时,我的其他页面无法加载,直到此脚本完成。

为什么会发生这种情况?

2 个答案:

答案 0 :(得分:0)

使用不同的密码进行导入,不要以root用户身份导入。

您也可以限制用户:

mysql> CREATE USER 'francis'@'localhost' IDENTIFIED BY 'frank';
mysql> GRANT ALL ON customer.* TO 'francis'@'localhost'
    ->     WITH MAX_QUERIES_PER_HOUR 20
    ->          MAX_UPDATES_PER_HOUR 10
    ->          MAX_CONNECTIONS_PER_HOUR 5
    ->          MAX_USER_CONNECTIONS 2;

了解更多信息: http://dev.mysql.com/doc/refman/5.0/en/user-resources.html

答案 1 :(得分:0)

这不是数据库锁,而是会话锁。

当我们运行脚本时,它花了很多时间,并且会话已打开,因此其他页面尝试使用会话但不能。

所以我补充道:

session_write_close();

它解决了这个问题。