大家说说看是怎么处理的。
比如主表为A 外表为B,
在进行A表操作的时候 同时要对B表操作。
因为表引擎是myisam 所以不能用到事务,那么假如我在对A操作成功后,执行B操作失败,导致状态不一致。
如果有个操作只需要用到A表信息,如果我不进行连接操作,只对A表进行select,这时候有可能就会得到那些没用的垃圾数据。
可能给实际的应用带来很大问题。
一些开源系统是采用表连接查询保证数据正确。
大家还有其他的方法吗?
比如主表为A 外表为B,
在进行A表操作的时候 同时要对B表操作。
因为表引擎是myisam 所以不能用到事务,那么假如我在对A操作成功后,执行B操作失败,导致状态不一致。
如果有个操作只需要用到A表信息,如果我不进行连接操作,只对A表进行select,这时候有可能就会得到那些没用的垃圾数据。
可能给实际的应用带来很大问题。
一些开源系统是采用表连接查询保证数据正确。
大家还有其他的方法吗?
————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
使用isam的好处在于它的查询效率高。但也不见得使用innodb效率就一定很低。表关联查询是为了查询a和b同时执行成功的数据,这个不是解决方案,而是弥补之前更新插入错误的一种方式。试想,如果不用事务处理。那么:
1.A执行更新,成功,b执行更新,失败,那么a就要回归到之前的数据状态。这就需要记录之前a的数据。2.A执行插入,成功,b执行插入或者更新,失败,那么就要删除之前的a插入的数据。然后要重复上述过程,直到A与b同时执行成功。