#### 行锁
innodb存储引擎(**myisam不支持行锁**)是通过给索引上的索引项加锁来实现的,这就意味着:**只有通过索引条件检索数据**,innodb才会使用行级锁,否则,innodb使用表锁。
**也就是说,想要innodb支持行锁, 表中必须添加主键.**
语法:
~~~
begin;
执行语句;
commit;
~~~
进程1:
~~~
mysql> begin; //加锁
Query OK, 0 rows affected (0.00 sec)
mysql> update user set name = 'zhenjie' where id = 2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> commit; //释放锁
Query OK, 0 rows affected (0.00 sec)
~~~
进程2:
~~~
mysql> update user set name = 'jie' where id = 2;
Query OK, 1 row affected (4.67 sec) //对于同一条数据等待了进程1释放写锁,才能进行修改.
Rows matched: 1 Changed: 1 Warnings: 0
~~~
- MySQL优化概述
- 存储引擎的选择
- innodb引擎
- myisam引擎
- memory引擎
- 查询需优化语句
- 通用查询日志
- 慢查询日志
- profile机制
- 索引
- 索引基本介绍
- 索引类型
- 索引管理语法
- 创建索引主要事项
- 执行计划
- 查看索引类型
- myisam索引数据结构
- innodb索引数据结构
- 索引覆盖
- 索引使用原则
- 列独立
- like查询
- 复合索引使用
- or运算都具有索引
- mysql智能选择
- 优化group by语句
- 前缀索引
- 全文索引
- 查询缓存
- 查询缓存操作
- 无缓存
- limit分页优化
- 分区
- 分区介绍
- list分区
- range分区
- hash分区
- key(键值)分区
- 分区管理
- 分表
- 分表介绍
- 水平分表
- 垂直分表
- MySQL锁机制
- 锁机制介绍
- 锁的几种形式
- 表锁操作
- 行锁操作
- 数据碎片与维护
- 范式
- 第一范式
- 第二范式
- 第三范式
- 反三范式
- 主从复制
- 介绍
- 读写分离