日期:2014-05-16  浏览次数:20747 次

myisam和innodb的锁 对开发到底有什么影响?
我看了文档,
myisam是表锁定 innodb是行锁。
共同点是在占据读锁的时候,其他用户都是可以读的,而占据写锁的时候,都不允许其他用户读写操作。

不知道这样理解是不是正确。

因为我感觉除了表锁和行锁这个范围上的区别,其他的似乎没什么不同。换句话说,这两种引擎不同的锁到底对开发中有什么影响?意味着什么不同的意义呢?

------解决方案--------------------
表锁是,锁定整个表。当A连接锁定T表时,其它用户均无法对T表写入数据。

而行锁,是仅锁定某记录。当A连接锁定T表中ID=10的记录时,其它用户仍可对T表中其它记录进行更新操作。
------解决方案--------------------
楼主看看这里有没帮助:

http://blog.csdn.net/zdl1016/article/details/6946060
------解决方案--------------------
表锁,一次把这个表全锁住了,别的操作都需要等待锁释放,举例:
update tba set id=id+1 where id=100
在MYISAM下,会对tba全部锁住,innodb下,只会锁id=100这一行。

锁定的粒度越小,允许的并发度就越高。