我有以下表架构:
CREATE TABLE `alexa` (
`id` int(10) unsigned NOT NULL,
`rank` int(10) unsigned NOT NULL,
`domain` varchar(63) NOT NULL,
`domainStatus` varchar(6) DEFAULT NULL,
PRIMARY KEY (`rank`),
KEY `domain` (`domain`),
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
导入数据需要几分钟时间。对我而言似乎相当慢,因为我们只讨论了一百万行数据。
如何优化此数据的插入? (已使用禁用键)
答案 0 :(得分:0)
使用LOAD DATA INFILE
或等效的命令行工具mysqlimport。这比任何其他方法快20倍。
您还可以在MySQL手册中阅读Speed of INSERT Statements。这有很多提高批量插入性能的技巧。
你没有多说你当前如何插入数据(除了禁用键),因此很难推荐更具体的方法来改进它。例如,您使用的编码语言是什么?你在使用准备好的查询吗?
答案 1 :(得分:0)
如果您不使用复制,请确保 bin log 已关闭:
set sql_log_bin=off;