我正在构建一个用于只读的表,这就是为什么我决定使用 MyISAM 而不是 InnoDB(但我愿意接受建议)。但是,此表需要非常大。虽然每行大约 12-14 字节,但表本身将包含数亿到数十亿行。
该表如下所示:
CREATE TABLE `tb1` ( `wid` int(11) NOT NULL DEFAULT '0',
`pid` int(11) NOT NULL DEFAULT '0',
`hit` tinyint(3) unsigned NOT NULL DEFAULT '0',
KEY `wid` (`wid`,`hit`,`pid`))
ENGINE=MyISAM DEFAULT CHARSET=latin1
我正在使用LOAD DATA LOCAL INFILE
块加载文本文件中的所有数据。
加载大约 20M 行需要 30 秒。然后我加载了一个 100M 行的块,10 分钟后,取消查询后,总共只有 38M 行。(10 分钟内 18M 行?...)
看起来这种类型的加载是指数而不是线性的。这是为什么?
当我有一个不断增加的索引时,我可以做些什么来加快 LOAD DATA INFILE?
就 LOAD DATA INFILE 速度而言,使用 InnoDB 代替 MyISAM 有什么好处吗?
加载所有没有索引的数据会更快吗..然后再应用一个?
感谢您的输入。