我的系统当前收到1600条记录。解析所有记录以创建查询,以将所有记录作为一个查询插入数据库。
我已经检查过解析过程大约需要1秒甚至更少的时间。但是,通过查询,处理时间约为12秒。
以下是我的查询示例:
INSERT INTO `SAMPLE`
(`RECORD_NUMBER`, `ITEM`, `DESCRIPTION`)
VALUES
('1', 'Sample Item 1', 'test'),
('2', 'Sample Item 2', 'test'),
('3', 'Sample Item 3', 'test')
ON DUPLICATE KEY UPDATE
`ITEM` = (CASE `RECORD_NUMBER`
WHEN '1' THEN 'Cash'
WHEN '2' THEN 'Credit Card'
WHEN '3' THEN 'Debit Card' END),
`DESCRIPTION` = (CASE `RECORD_NUMBER`
WHEN '1' THEN 'Sample Text 1'
WHEN '2' THEN 'Sample Text 2'
WHEN '3' THEN 'Sample Text 3' END);
如果不存在,我的查询就像插入新记录一样简单,但是如果确实存在,它只会更新已经存在的记录。
该查询的时间530(1600条记录)几乎与我插入/更新的记录数相同。
是否有一种使流程更快的方法?希望对查询进行最小的更改。
语言:JavaScript ;数据库:MySQL Workbench
答案 0 :(得分:0)
我不是mysql开发人员(SQL Sever),但是我也许可以为您指明正确的方向以助您前进。
我现在已经在google上搜索了一下mysql等效项,但是无法测试,因此您可能需要花费更多的时间进行研究。
首先,我将使用LOAD DATA INFILE函数将文件“批量加载”到memory table中。
在此放置后,即可使用内部联接和左联接插入/更新。
希望这会有所帮助!