2013-02-13 150 views
0

任何机构可以建议哪些人会更快地执行(考虑处理大数据量超过两百万行)更快的更新查询

UPDATE first_table ft, second_table st SET ft.Dataset=3 
WHERE st.Dataset =0 
AND (ft.Dataset =1 || ft.Dataset=2) 
AND (ft.ID IS NULL) 
AND st.First_Name = ft.First_Name 
AND st.Last_Name = ft.Last_Name 
AND st.Zip = ft.Zip 

OR

把下面分成两个不同的更新查询

(ft.Dataset =1 || ft.Dataset=2) 
+0

实际上,这将取决于你的引擎,索引,表结构,数据类型等... – jcho360 2013-02-13 15:48:30

+0

是啊我已经设置索引,表是在innodb – 2013-02-13 15:49:53

+0

innodb应该运行一点点慢,因为它必须更新索引,如果你在2中分开查询,我不会看到它将如何实现更快的查询,除了你正在更新2MM的行 – jcho360 2013-02-13 15:53:06

回答

0

应该没有什么区别,但是最好不要只是猜测。如果它以某种方式尝试从两个查询中分别预载所有行,则可能会比慢很多(假设您没有内存中的行)。

+0

是的,我期待着同样的事情。谢谢。 – 2013-02-13 15:59:27