【问题标题】:faster update query in mysqlmysql中更快的更新查询
【发布时间】:2013-02-13 23:54:09
【问题描述】:

任何机构都可以建议哪个执行速度更快(考虑处理超过 200 万行的大数据)

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

将以下内容放入两个不同的更新查询中

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

【问题讨论】:

  • 实际上这将更多地取决于您的引擎、索引、表结构、数据类型等...
  • 是的,我设置了索引,表在innodb中
  • innodb 应该运行得慢一点,因为它必须更新索引,如果你将查询分开 2 我看不出它会如何进行更快的查询,除了你正在更新 2MM 的行
  • 超过 200 万行,您将加入两个表中的名字、姓氏和 zip - 很好!!

标签: mysql optimization query-optimization


【解决方案1】:

应该没有任何区别,但您最好进行测试而不是简单地猜测。

从逻辑上讲,它是相同的,但如果它以某种方式尝试分别从两个查询中预加载所有行,那么它可能会慢很多(假设你没有内存中的行)。

【讨论】:

  • 是的,我期待着同样的事情。谢谢。
猜你喜欢
  • 2012-05-27
  • 2012-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多