如何导出/转储没有索引的MySQL

时间:2018-12-02 13:24:57

标签: mysql indexing import export

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

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

我可以导出不带索引的sql吗?

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

2 个答案:

答案 0 :(得分:0)

来自mysqldump文档:

  

-disable-keys -K

     

对于每个表,用/ *!40000 ALTER TABLE tbl_name DISABLE KEYS /;包围INSERT语句。和/ !40000 ALTER TABLE tbl_name ENABLE KEYS * /;陈述。这将使加载转储文件的速度更快,因为在插入所有行之后都会创建索引。此选项仅对MyISAM表的非唯一索引有效。对其他表无效。

答案 1 :(得分:0)

--disable-keys仅适用于MyISAM表。我已经做了很多搜索,但没有找到类似的方法来为InnoDB进行此操作。

我要做的是使用hexedit,按Tab,键入/,然后输入表名,在找到CREATE TABLE语句时按回车键。大表导致问题,我导航到PRIMARY KEY / UNIQUE KEY / KEY,然后用空格替换所有索引以将其删除。保存文件后,加载转储,并在手动重新创建相同的索引后立即加载。对于我的数据(150 GB和15亿行),它需要5个小时而不是15个小时。