首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在导入期间禁用外键检查

在导入期间禁用外键检查
EN

Database Administration用户
提问于 2018-10-16 06:46:13
回答 1查看 13.7K关注 0票数 2

我已经启动了一个巨大的(~800 to的sql )导入到一个mysql 5.5

在某种程度上,我意识到当数据库被导入时,随着数据库大小的增加,进度开始放缓;

这是一个明确的暗示,外键检查的规模不断扩大,可能正在减缓这一进程;

我意识到我忘了禁用它们,我刚刚做到了(在导入过程中);

因此,我的问题是,具体的导入是否会从中受益,还是会继续执行FK检查(在导入初始化过程中)

代码语言:javascript
复制
mysql> show variables like 'fo%';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| foreign_key_checks | ON    |
+--------------------+-------+
1 row in set (0.00 sec)

mysql> SET FOREIGN_KEY_CHECKS=0;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'fo%';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| foreign_key_checks | OFF   |
+--------------------+-------+
1 row in set (0.00 sec)
EN

回答 1

Database Administration用户

回答已采纳

发布于 2018-10-16 09:14:34

命令

代码语言:javascript
复制
SET FOREIGN_KEY_CHECKS=0;

设置会话范围中变量的值。因此,它只影响当前会话,而不影响其他会话,无论是已经运行的会话还是稍后将启动的会话。

如果使用以下命令将新值指定为全局范围值

代码语言:javascript
复制
SET GLOBAL FOREIGN_KEY_CHECKS=0;

然后将设置全局设置。它影响当前会话和以后将启动的会话,而不影响已在运行的其他会话。

你可以在实践中看到它。

  • 启动2次CLI (mysql.exe)会话。
  • 检查所有窗口中的变量值。
  • 在第一个窗口修改它。
  • 启动第三窗口。
  • 检查所有窗口中的变量值。
  • 在第一个窗口中全局修改它。
  • 从第四窗口开始。
  • 检查所有窗口中的变量值。
票数 8
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/220192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档