我正在开发一个使用单个数据库的多租户应用程序。有一些东西(类别)将允许嵌套,在研究嵌套集合方法之前,我在脑海中已经开始考虑父子关系。
我对嵌套集合的主要关注是在树中添加或删除项时(显然)需要锁定表。在多租户场景中,一个用户的类别修改将对系统上的每个其他用户产生严重的性能影响。
是否有其他方法可以确保受影响的行不会被访问?所有行都将由一个公共的tenant_id标识。
提前感谢您能提供的任何建议。
发布于 2013-02-20 08:28:14
如果您正在修改行,该行将被锁定-没有办法避免它。但我的猜测是,您的意思是在修改某些行时防止锁定整个表。要避免这种情况,请使用InnoDB引擎而不是MyIsam。当对任何行进行更改时,MyIsam会锁定整个表,而InnoDB不会。
请参阅:“为了实现非常高的锁定速度,MySQL对除InnoDB、BDB和NDBCLUSTER之外的所有存储引擎都使用表锁定(而不是页、行或列锁定)。”http://dev.mysql.com/doc/refman/5.0/en/table-locking.html
https://stackoverflow.com/questions/14969696
复制相似问题