我想更新单个表的3行,每个表都有不同的值。
我看到它的方式我可以......
选项1。
只需创建一个PHP循环,并为我想要更新的每一行运行一个查询。 (这可能是'经典'的方法。)
选项2。
按照组合到单个查询的方法,但使用我听到的语法较慢,具体取决于具体情况。 (示例复制自:this website):
UPDATE mytable
SET myfield = CASE other_field
WHEN 1 THEN 'value'
WHEN 2 THEN 'value'
WHEN 3 THEN 'value'
END WHERE id IN (1,2,3)
哪个更好,更快?
答案 0 :(得分:2)
单个查询将比在循环中多次查询服务器快得多。
答案 1 :(得分:1)
我几乎可以肯定单个MySQL查询会比单独的UPDATE查询慢,但你总是可以试试。如果不考虑立即一致性,您还可以考虑使用单独的UPDATE LOW_PRIORITY查询,这些查询应该更快。
了解适用于您的应用程序的最佳方法,就像在编程中一样,是对两个查询的性能进行基准测试并稍微进行实验:)