首页 / 数据库 / MySQL / Mysql教程:对MySQL中的锁机制的总结
Mysql教程:对MySQL中的锁机制的总结2010-07-24杨涛原文链接:http://blog.chinaunix.net/u/29134/showart_1087632.html今天来简单总结一下MySQL的锁机制,不妥的欢迎拍砖!1、对于MySQL来说,有三种锁的级别:页级、表级、行级。页级的典型代表引擎为BDB。表级的典型代表引擎为MyISAM,MEMORY以及很久以前的ISAM。行级的典型代表引擎为INNODB。2、我们实际应用中用的最多的就是行锁了。行级锁的优点如下:1)、当很多连接分别进行不同的查询时减小LOCK状态。2)、如果出现异常,可以减少数据的丢失。因为一次可以只回滚一行或者几行少量的数据。行级锁的缺点如下:1)、比页级锁和表级锁要占用更多的内存。2)、进行查询时比页级锁和表级锁需要的I/O要多,所以我们经常把行级锁用在写操作而不是读操作。3)、容易出现死锁。3、MySQL用写队列和读队列来实现对数据库的写和读操作。对于写锁定如下:1)、如果表没有加锁,那么对其加写锁定。2)、否则,那么把请求放入写锁队列中。对于读锁定如下:1)、如果表没有加写锁,那么加一个读锁。2)、否则,那么把请求放到读锁队列中。当然我们可以分别用low_priority 以及high_priority在写和读操作上来改变这些行为。