CREATE TABLE record (
id INT PRIMARY KEY,
parent_id INT,
count INT NOT NULL
)
我有一个如上定义的表。字段'parent_id'是指行的父级,所以整个数据看起来像n元树。递归更新MySQL中的父行
根据我的业务逻辑,当一个行的字段'count'被请求增加时(例如一个),所有的祖先节点(或行)应该被更新以增加'count '领域也是如此。由于这个'count'字段预计会经常更新(比如1000/sec),所以我相信这个递归更新会由于DBMS中的巨大级联写入操作而大幅降低整个系统的性能。
现在,我认为存储过程是我可以选择的最佳选择。如果MySQL支持像Oracle的“连接”那样的操作,那么可能会有一些棘手的方法,但它显然不是。
是否有任何有效的方法来实现这一点?
在此先感谢。
也许,如果你更经常地写更多的读,你不应该更新父母。相反,只要读取计算?如果将数据结构更改为[嵌套集模型](http://dev.mysql.com/tech-resources/articles/hierarchical-data.html),这可能有助于在SELECT中进行计算。 – pintxo 2011-04-29 08:14:14
@ user730685请使用'{}'按钮输入源代码。如果这次为你做了这个。 – Oswald 2011-04-29 08:16:32
@cmmi这应该是一个答案,而不是评论。 – Oswald 2011-04-29 08:41:26