我有以下两个mysql(X和mode)表,结构如下
table X
`time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`op_mode` varchar(200) NOT NULL,
`value` double NOT NULL,
`processed` int(11) NOT NULL DEFAULT '0',
KEY `time` (`time`),
KEY `processed` (`processed`)
table mode
`time_from` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`time_to` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`op_mode` varchar(500) CHARACTER SET utf16 COLLATE utf16_bin NOT NULL
表X
包含大约 1M 行。我创建了一个 C# 桌面应用程序来使用以下查询更新表的op_mode
列:X
UPDATE X, mode
SET X.op_mode = mode.op_mode,
processed = 1
WHERE (X.TIME BETWEEN mode.time_from
AND mode.time_to
) AND processed = 0
但是更新过程需要很长时间。
有什么建议可以加强更新过程吗?
processed
表中的列X
用作标志(最初设置为0
,并1
在更新行时设置为)