2010-03-17 96 views
2

我有一个用户表的频繁更新,它简单地设置用户的最后一次看到的时间,我想知道是否有一种简单的方法推迟他们,并将它们分组成单个查询后短超时(5分钟左右)。这将会减少我的用户数据库上的查询。推迟在MySQL中的频繁更新

回答

2

如果你做了,你UPDATE LOW_PRIORITY table ...将确保当它没有做其他任何事情,只会执行你的更新。除此之外,我不认为MySQL中有很多选项。

此外,它是现在造成问题还是你只是优化一些不是问题?就个人而言,如果我要像这样批量更新,我只需将所有ID插入memcached中,并使用cronjob每5分钟更新一次。

+0

我很喜欢你的缓存方法,我会试试看。基本上我把我的数据保存在一个缓存中(在我的情况下是Pear Cache_Lite),然后我有一个定期的写回服务。 – cdecker 2010-03-18 15:54:18

1

沃尔夫的建议应该做到这一点。还可以创建第二个没有任何索引的表,并将所有数据插入到该表中。它甚至可以是内存表。然后你做一个周期性的INSERT INTO table1 SELECT * FROM TABLE2 ON DUPLICATE KEY UPDATE ...传输到主表。