【发布时间】:2011-07-18 15:59:35
【问题描述】:
目前我们使用 MySQL。
我们有带有空间索引的表(所以没有 InnoDB),并且每 x 秒更新一次整个表(将对象从一个地方移动到另一个地方)。
目前我们正在做:
UPDATE LOW_PRIORITY IGNORE `table`
SET `column1` = CASE `column2`
WHEN 1 THEN ...
WHEN 2 THEN ...
WHEN 3 THEN ...
...
ELSE `column1`
END;
但是随着行数的增加,它会变得非常痛苦。有没有更好的方法来更新整个表?也许我们应该切换到其他数据库(PostGIS、NoSQL)?
对此有什么想法吗?
【问题讨论】:
-
为什么要“移动”对象?这意味着什么?你能举一个真实的例子,而不是你的注释版本,因为某种原因删除了所有多汁的部分吗?
-
我同意...移动似乎是错误的,而是在某处更新状态。并展示为获得实际帮助而付出的实际努力。
-
我有 iphone 游戏 Floonr,人们可以在其中发射虚拟气球并在真实地图上跟踪它。我根据纬度,经度模拟每次更新时的风变化
标签: mysql optimization query-optimization