我试图在实时数据库服务器上运行数据迁移查询,一分钟后,由于“连接太多”,我无法通过命令行连接到MySQL。 我不得不杀掉查询并重新启动MySQL。 我不会尝试在一天的实时系统上运行这样的查询,再次:)
同样的查询在生产服务器的非常低stream量的副本上花费不到两分钟,整理得很好。
是否有可能是服务器的stream量会使这个查询失速?
我有一个预感,你遇到的问题是与FLUSH TABLES或LOCK TABLES相关,假设你正在使用mysqldump或类似的东西来做你的迁移。 mysqldump不会抛出–single-transaction将假设一个MyISAM表types并locking表以防止在转储时发生新的写入,以便获得一致的快照。 如果您正在使用InnoDB表并打开–single-transaction,则执行的第一个查询之一是清空表,它将closures并重新打开数据库中的所有表,以便跨表获得一致的快照。 要么可能导致传入的查询堆积等待锁释放,但可能不会在您的轻装载的复制品上引人注目。