我从服务器导出了sql并导入到本地。
但是导入SQL需要太多时间,我认为它与索引有关。
我可以导出不带索引的sql吗?
在导入sql之后,将索引应用于表。这可能吗?
答案 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个小时。