代码之家  ›  专栏  ›  技术社区  ›  hobbydev

如何在没有索引的情况下导出/转储mysql

  •  0
  • hobbydev  · 技术社区  · 7 年前

    我从服务器导出SQL并导入到本地。

    但是导入sql需要太多的时间,我认为它与索引有关。

    我可以导出没有索引的sql吗?

    导入sql之后,对表应用索引。这可能吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Rick James diyism    7 年前

    mysqldump 博士:

    --禁用键,-k

    对于每个表,用/*!40000个alter table tbl_name禁用密钥 ;和/ !40000 alter table tbl_name enable keys*/;语句。这使得加载转储文件更快,因为索引是在插入所有行之后创建的。此选项仅对myisam表的非唯一索引有效。对其他桌子没有影响。

        2
  •  0
  •   Erik Rothoff    7 年前

    --disable-keys 仅适用于Myisam表。我已经做了很多搜索,但没有找到任何类似的方法来为innodb做这件事。

    我所做的就是利用 hexedit ,出版社 Tab 类型 / 表的名称,当它找到 CREATE TABLE 对于引起问题的大表,我导航到 PRIMARY KEY / UNIQUE KEY / KEY 其次,用空格替换所有索引。保存文件后,加载转储,然后立即手动重新创建相同的索引。对于我的数据(150GB和15亿行),需要5个小时而不是15个小时。