将非常大的文本(非CSV)文件导入MySQL

时间:2016-01-10 14:14:34

标签: php mysql text import phpmyadmin

我有一个> 3GB .txt文件,其中包含句子形式的文字,每个句子都在一个新行中。我还有一个非常简单的MySQL表,其结构如下:

tblcontext

si_no => INT(11); unsigned; autoincrement
context => VARCHAR(190); unique; fulltext

从txt来源,文本的每一行(即句子)都需要进入 tblcontext 作为上下文字段的新值。我可以简单地使用PHPMyAdmin中内置的导入功能来导入文件,但我的源不是csv文件。我无法将txt转换为csv,因为每个句子都可能有内联逗号和其他标点符号,这可能会使我的输入陷入混乱,可能会将每行划分为多行。有没有什么方法可以将普通的txt导入到表中,告诉PHPMyAdmin处理换行符而不是逗号作为分隔符?

我考虑过使用PHP,但由于源文件太大,我在执行实际导入之前测试了一个简单的读取。这是我的尝试:

$handle = fopen("en.txt", "r");
if ($handle) {
    while (($line = fgets($handle)) !== false) { echo $line; }
    fclose($handle);
} else { echo 'could not import'; }

但上面的简单阅读冻结了我的电脑!我确信使用PHP进行INSERT会更慢,这就是为什么我正在寻找一些方法来使用PHPMyAdmin的IMPORT函数,希望它应该更快。有问题的文本文件中有大约50米的行。

0 个答案:

没有答案