我从服务器导出SQL并导入到本地。
但是导入sql需要太多的时间,我认为它与索引有关。
我可以导出没有索引的sql吗?
导入sql之后,对表应用索引。这可能吗?
--disable-keys 仅适用于Myisam表。我已经做了很多搜索,但没有找到任何类似的方法来为innodb做这件事。
--disable-keys
我所做的就是利用 hexedit ,出版社 Tab 类型 / 表的名称,当它找到 CREATE TABLE 对于引起问题的大表,我导航到 PRIMARY KEY / UNIQUE KEY / KEY 其次,用空格替换所有索引。保存文件后,加载转储,然后立即手动重新创建相同的索引。对于我的数据(150GB和15亿行),需要5个小时而不是15个小时。
Tab
/
CREATE TABLE
PRIMARY KEY
UNIQUE KEY
KEY
从 mysqldump 博士:
mysqldump
--禁用键,-k 对于每个表,用/*!40000个alter table tbl_name禁用密钥 ;和/ !40000 alter table tbl_name enable keys*/;语句。这使得加载转储文件更快,因为索引是在插入所有行之后创建的。此选项仅对myisam表的非唯一索引有效。对其他桌子没有影响。
--禁用键,-k
对于每个表,用/*!40000个alter table tbl_name禁用密钥 ;和/ !40000 alter table tbl_name enable keys*/;语句。这使得加载转储文件更快,因为索引是在插入所有行之后创建的。此选项仅对myisam表的非唯一索引有效。对其他桌子没有影响。