(本文为了方便,英文关键词都都采用小写方式,相关知识点会简单介绍,争取做到可以独立阅读)
文章开始我会先介绍本文需要的知识点如下:
- innodb的主键索引(一级索引)和二级索引(辅助索引)的知识
- innodb的隔离级别(isolation level)
- MVCC(Multi-Version Concurrent Control)多版本并发控制
- 数据的脏读、幻读(如果有时间会详细讲一下脏读如果没时间,网上讲这个地方的也很多)
- 简单的sql知识(能读懂sql语句)
我们先看一个mysql表和几条语句,方便后面使用
表名称:
my_table
搜索引擎:innodb
表结构:
1. select * from my_table where id = 1;
2. select * from my_table where id = 1 lock in share mode;
3. select * from my_table where id = 1 for update;
4. update my_table set address = 'tianjin' where id = 1;
先说
隔离级别,mysql
隔离级别分为四种:
未提交读(
read uncommitted
)、提交读(read committed)、重复读(repeatable read)、序列化(serializable)