在一个查询中在MySQL中插入/更新的最佳方法是什么?

时间:2011-02-18 02:05:52

标签: php mysql minecraft

我正在寻求优化单个查询到我的服务器(将由数十或数百个外部服务器使用),这将允许远程插入玩家(我的世界)统计数据并且没有问题地阅读。

目前,我正在使用: INSERT DELAYED INTO servers_players (a,b,c) VALUES(1,2,3) ON DUPLICATE KEY UPDATE c=c+3, ...;

这是优化查询的最佳方式还是有更好的方法?

谢谢,

比利

1 个答案:

答案 0 :(得分:2)

请注意,根据http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html,DELAYED无效:

  

使用ON DUPLICATE KEY UPDATE时,将忽略DELAYED选项。

至于如何优化,与一般的单独INSERT / UPDATE组合相比,它已经非常优化了。但是,精确的使用模式可能会影响它(例如,如果VAST的大多数操作都是UPDATE(很少新插入的行),先执行UPDATE然后插入,如果UPDATE更新零行可能会更有效。