1

我正在使用单个数据库开发多租户应用程序。一些东西(类别)将允许嵌套,在检查嵌套集方法之前,我已经开始考虑父子关系。

我对嵌套集的主要关注是(显然)在从树中添加或删除项目时需要锁定表。在多租户场景中,一个用户的类别修改将对系统上的所有其他用户产生严重的性能影响。

是否有其他方法可以确保不访问受影响的行?所有行都将由一个共同的tenant_id 标识。

提前感谢您提供的任何建议。

4

1 回答 1

0

如果您正在修改一行,该行将被锁定 - 没有办法绕过它。但我的猜测是,您的意思是在修改某些行时防止锁定整个表。为了防止这种情况,请使用 InnoDB 引擎而不是 MyIsam。当对任何行进行更改时,MyIsam 会锁定整个表,而 InnoDB 不会。

请参阅:“为了实现非常高的锁定速度,MySQL 对除 InnoDB、BDB 和 NDBCLUSTER 之外的所有存储引擎使用表锁定(而不是页、行或列锁定)。” http://dev.mysql.com/doc/refman/5.0/en/table-locking.html

于 2013-02-20T00:28:14.457 回答