《High Performance MySQL》概译 读/写锁

今天在微博看到消息该书的中文版已经翻译完成即将发售,所以OneCoder不再进行全文翻译,只会以类似读书笔记的方式记录文章大意和自己的理解。每天阅读的不会太多,因为只是休息的时候阅读,学习的重心最近在Hadoop上。

读写锁


多个用户同时读取邮件的时候不会有什么问题,以为没有人去修改文件。但是在有人正在的读的时候删除邮件就会产生问题。所以,出于安全考虑,读也应该特别关注。

这里的邮箱其实就跟数据库中的表类似。每个邮件就是一行数据。修改数据库中的行数据,就相当于修改邮箱中某个邮件的信息。

解决这个问题思路很简单,就是加锁。读写操作就实现了锁系统。有两种锁,共享锁和排它锁,或者叫做读锁和写锁。

不关心锁的技术细节,我们这样描述锁的原理。读锁是共享的或者说互助不堵塞的。客户端之间可以共同读取资源。写锁是排他的,同一时间只有获得锁的客户端可以操作,其他读、写请求均被堵塞。因为只有这样才是安全的。

在数据库系统中,锁随处可见。MySQL也必须避免在有人读取数据的时候,数据被他人修改。其内部实现了锁系统,并且对外部是透明的。

Thanks a lot.