【问题标题】:MySQL database dump import order (schema, routines, triggers, events and data)MySQL 数据库转储导入顺序(模式、例程、触发器、事件和数据)
【发布时间】:2012-02-26 05:25:46
【问题描述】:

我使用 bash 脚本转储单个数据库的不同区域以分离转储文件。目前文件按以下顺序转储:

  1. 数据库、表和视图架构。
  2. 例程。
  3. 触发器。
  4. 事件。
  5. 数据。

现在,我想知道 - 如果要导入数据,我应该按什么顺序导入?

如果我要以相同的顺序导入转储,我会担心 - 如果我在导入数据之前导入触发器,它们会在导入期间“触发”吗?

我应该先导入架构,然后再导入数据,然后再导入其余部分吗?我应该这样做有什么特别的顺序吗?

【问题讨论】:

  • mysqldump 提供的建议顺序是正确的,您也应该遵循相同的顺序。除非您明确跳过触发器,否则触发器将在导入期间触发。

标签: mysql mysqldump


【解决方案1】:

如果有人需要明确知道,我会回答自己。

作为@ajreal suggested,最好的方法是按照mysqldump 输出的顺序。而mysqldump的顺序如下:

  1. 数据库
  2. 表
    1. 表架构(包括约束)
    2. 表格数据
    3. 表触发器
  3. 视图 - 仅限临时表!
  4. 事件。
  5. 例程。
  6. 视图 - 最终视图结构

【讨论】:

  • +1 但另一个细微差别是将二级索引的创建延迟到数据加载完成后,以加快数据加载并利用快速索引创建。此功能已添加到 Percona Server 中的 mysqldump 中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-22
  • 1970-01-01
  • 1970-01-01
  • 2016-06-25
  • 2011-10-30
  • 1970-01-01
相关资源
最近更新 更多