mysql数据库引擎InnoDB和MyISAM

一.Mysql锁分类  

表级锁:开销小,加锁块;不会出现死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低。

行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发性也最高。

页面锁:开销和加锁界于表锁和行锁之间,会出现死锁;锁定粒度界与表锁和行锁之间,并发一般。

二.MyISAM

1.MyISAM不支持事物;

2.MyISAM只支持表锁

不能在表损坏后恢复数据;

MyISAM表锁有两种模式:表共享读锁(table read lock)和表独占写锁(table write lock),锁的解释如下: 

myISAM表的读操作,不会阻塞其他用户对同一个表的读请求,但会阻塞对同一个表的写请求。

myISAM表的写操作,会阻塞其他用户对同一个表的读和写操作。

myISAM表的读、写操作之间、以及写操作之间是串行的。

适合在以下几种情况下使用:

做很多count的计算

查询非常频繁

MyISAM在执行查询前,会自动执行表的加锁、解锁操作,一般情况下不需要用户手动加、解锁,但是有的时候也需要显示加锁。当然也可以用union做关联查询代替

1 lock table t1 read, t2 read; 2 select count(t1.id) as 'total' from t1; 3 select count(t2.id) as 'total' from t2; 4 unlock tables;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpyxgy.html