mysql innodb的行级锁和表锁

我们一般认为mysql innodb不是行级锁吗?
怎么会把整个表锁死?
什么情况会使Innodb锁表呢?
要实现行级锁, 需要考虑一个问题, 如何才能 判定 一行正在被使用?mysql使用索引的方式, 这样当其它查询或修改时根据索引找到这一行的时候, 发现索引被上了锁, 就会等待,如果查询不是通过索引访问的,那就是 通过简单的遍历所有行得到目标的,那就会给整个表加上锁,所以要优化你的数据库表, 用于查询的键要加上 索引啊~
So、只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁!
参考文章链接:InnoDB行锁实现方式

你可能感兴趣的:(数据库,mysql,索引)