【发布时间】:2013-02-26 07:45:39
【问题描述】:
我有以下两个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# 桌面应用程序来使用以下查询更新 X 表的 op_mode 列:
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
但是更新过程需要很长时间。
有什么建议可以加强更新过程吗?
X 表中的processed 列用作标志(最初设置为0,当行更新时设置为1)
【问题讨论】:
标签: c# mysql sql-update