相关疑难解决方法(0)

为什么 DROP DATABASE 需要这么长时间?(MySQL)

新的 CentOS 安装。

我正在运行一个大型数据库(2GB sql 文件)的导入并且遇到了问题。SSH 客户端似乎失去了连接,导入似乎冻结了。我使用另一个窗口登录到 mysql 并且导入似乎已死,卡在特定的 3M 行表上。

所以我试过了

DROP DATABASE huge_db;
Run Code Online (Sandbox Code Playgroud)

15-20分钟后,什么都没有。在另一个窗口中,我做了:

/etc/init.d/mysqld restart
Run Code Online (Sandbox Code Playgroud)

DROP DB 窗口显示消息:SERVER SHUTDOWN。然后我实际上重新启动了物理服务器。

重新登录到 mysql,检查并且数据库还在那里,然后运行

DROP DATABASE huge_db;
Run Code Online (Sandbox Code Playgroud)

再一次,我已经等了大约 5 分钟。

再次,这是全新安装。这huge_db是唯一的数据库(系统数据库除外)。我发誓我之前和很快就放弃了这么大的 db,但也许我错了。

我已经成功删除了数据库。大约花了 30 分钟。另请注意,当我认为 mysqldump 导入已死时,我认为我错了。终端连接丢失,但我认为该过程仍在运行。我很可能杀死了导入中间表(3M 行表),并且可能杀死了整个数据库的 3/4。“top”显示 mysql 只使用了 3% 的内存,而看起来它应该使用更多内存,这是一种误导。

删除数据库最终需要 30 分钟,因此,我可能不必重新启动服务器,也可能只是等待 DROP 完成,但我不知道 mysql 会如何对获取 DROP 查询做出反应它通过 mysqldump 导入的同一个数据库。

尽管如此,问题仍然存在,为什么在删除所有 db 文件并从 information_schema 中删除对 DB 的所有引用时,DROP 2GB 数据库需要 30 分钟以上?有什么大不了的?

mysql mysqldump

55
推荐指数
2
解决办法
9万
查看次数

标签 统计

mysql ×1

mysqldump ×1