MySQL社区

标题: MySQL有关insert大量数据的问题(百万行) [打印本页]

作者: cndv3996    时间: 2016-5-16 14:49
标题: MySQL有关insert大量数据的问题(百万行)
大家好,
有个小问题,有关MySQL数据库大量insert的问题:

比如我有个TXT文件,格式类似:
test0007, 55.2
test0903, 34.5
test0321, 63.0
...
test9504, 30.6

有百万行吧。
每行,第一列是字串,第二列是一个浮点数据。

现在我有2个表,

CREATE TABLE IF NOT EXISTS mis_table_test_info
                               ( test_id INT UNSIGNED AUTO_INCREMENT,
                                 test_name VARCHAR(128),
                                 PRIMARY KEY (test_id),
                                 UNIQUE (test_name));

CREATE TABLE IF NOT EXISTS mis_table_data_list
                               ( list_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
                                 test_id INT UNSIGNED,
                                 test_data FLOAT);

需要把第一列的字串从表“mis_table_test_info”里得到ID,
再和第二列数据一起,存到表“mis_table_data_list”里。

现在用的方法是:
insert into mis_table_data_list (test_id, test_data)
values ( select test_id from mis_table_test_info where test_name="test0007",
55.2),
values ( select test_id from mis_table_test_info where test_name="test0903",
34.5),
values ( select test_id from mis_table_test_info where test_name="test0321",
63.0),
...

一次插入1000行,速度比较慢,
估计慢在MySQL解析SQL命令上。

好像也没法直接用load data infile,
一次要插入百万行数据,
各位有没好办法?

谢谢。。。

有没有办法,批量把字串映射成ID,导出来?




作者: kider    时间: 2016-5-26 22:05
把文本导入成一个表,然后2张表关联,导入到第三张表中...




欢迎光临 MySQL社区 (http://www.mysqlpub.com/) Powered by Discuz! X3.2