【发布时间】:2012-05-22 11:47:47
【问题描述】:
请问有什么办法可以优化MySql中的这个更新查询吗?
UPDATE table1 t1
SET t1.column =
(SELECT MIN(t2.column)
FROM table2 t2 WHERE t1.id = t2.id
);
两个表都有大约 250 000 条记录。
表结构:
CREATE TABLE `table1` (
`id` int(11) NOT NULL,
`column` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `table2` (
`code` int(11) NOT NULL,
`id` int(11) NOT NULL,
`column` datetime NOT NULL,
PRIMARY KEY (`code, `id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
ALTER TABLE table2 ADD CONSTRAINT FK_id
FOREIGN KEY (id) REFERENCES table1 (id)
;
感谢您的帮助。
【问题讨论】:
-
id是主键吗(在两个表中)? -
yes ..in table1是主键只是id,在table2有复合主键包含id 是 table1 的外键
标签: mysql sql query-optimization