#### 使用場景
比如有如下操作:
1. 從數據庫中取出id的值(比如id=100) .
2. 把這個值-1(id=100-1).
3. 再把該值存回到數據庫(id=99).
假如id=100
有兩個進程(用戶)同時操作 :
進程1:
id=100
id = 100-1
id = 99
進程2:
id=100
id = 100-1
id=99
**mysql中的鎖:同一個時間只有一個人可以獲得鎖,其他人只能阻塞等待第一個人釋放鎖。**
| 進程1(用戶) | 進程2(用戶) | 進程3(用戶) |
| --- | --- | --- |
| get lock | 等待 | 等待 |
| id = 100 | 等待 | 等待 |
| 100-1 | 等待 | 等待 |
| id =99 | 等待 | 等待 |
| unlock | get lock | 等待 |
| | id = 99 | 等待 |
- MySQL優化概述
- 存儲引擎的選擇
- innodb引擎
- myisam引擎
- memory引擎
- 查詢需優化語句
- 通用查詢日志
- 慢查詢日志
- profile機制
- 索引
- 索引基本介紹
- 索引類型
- 索引管理語法
- 創建索引主要事項
- 執行計劃
- 查看索引類型
- myisam索引數據結構
- innodb索引數據結構
- 索引覆蓋
- 索引使用原則
- 列獨立
- like查詢
- 復合索引使用
- or運算都具有索引
- mysql智能選擇
- 優化group by語句
- 前綴索引
- 全文索引
- 查詢緩存
- 查詢緩存操作
- 無緩存
- limit分頁優化
- 分區
- 分區介紹
- list分區
- range分區
- hash分區
- key(鍵值)分區
- 分區管理
- 分表
- 分表介紹
- 水平分表
- 垂直分表
- MySQL鎖機制
- 鎖機制介紹
- 鎖的幾種形式
- 表鎖操作
- 行鎖操作
- 數據碎片與維護
- 范式
- 第一范式
- 第二范式
- 第三范式
- 反三范式
- 主從復制
- 介紹
- 讀寫分離