通过插入/更新提高SQL处理时间

时间:2018-08-23 07:11:54

标签: mysql sql

我的系统当前收到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

1 个答案:

答案 0 :(得分:0)

我不是mysql开发人员(SQL Sever),但是我也许可以为您指明正确的方向以助您前进。

我现在已经在google上搜索了一下mysql等效项,但是无法测试,因此您可能需要花费更多的时间进行研究。

首先,我将使用LOAD DATA INFILE函数将文件“批量加载”到memory table中。

在此放置后,即可使用内部联接和左联接插入/更新。

希望这会有所帮助!

相关问题