最大化大型LOAD DATA INFILE'xyz.txt'IGNORE查询的吞吐量

时间:2016-11-29 00:18:31

标签: mysql performance file-io

源有800M +条目(docID,needleID)。生成的表格将此数字与接近150M的唯一docID相关联。但是,执行查询需要相当多的时间。查看文档似乎没有太多可能的调整。我错过了什么吗?

查询如下:

LOAD DATA INFILE 'someFile.txt' IGNORE INTO TABLE temp.someTable (docID,needleID)

[根据要求,表格为:]

    CREATE TABLE `someTable` (
                 `docID` char(11) NOT NULL DEFAULT '',
                 `needleID` int(11) DEFAULT NULL,
                 PRIMARY KEY (`docID`)
                 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

查询在MacPro 4内核32G RAM上运行,目前需要3小时才能完成

更新

将引擎更改为MEMORY,将时间缩短至30分钟。

查询的目的是识别第一个文档,其中许多潜在针中的一个是匹配的。针以预先确定的顺序搜索针(例如:在纽约之前搜索“纽约”。这样做是因为依赖于像YORK这样的查询的策略 - “纽约”将是不切实际的。)

匹配由Sphinx识别,可能需要30分钟才能生成10GB文件。然后将此文件提供给mySQL以获取给定文档中的第一个匹配针。

0 个答案:

没有答案