[TOC]
## MySQL 鎖
**基礎概念**
>表鎖是日常開發當中常見的問題,當多個查詢同一時刻進行數據修改時,就會產生并發控制的問題。
****
**MySql的七種鎖**
> * 行鎖:一定是作用在索引上
> * 間隙鎖:一定是**開區間**,比如(3,5)
> * 臨鍵鎖:
> * 共享鎖/排他鎖:
> * `共享鎖` 和 `排他鎖` , 就是 `讀鎖` 和 `寫鎖`
> * 意向共享鎖/意向排他鎖
> * 插入意向鎖(IIX)
> * 自增鎖
> MySQL官網中還提到了一種**預測鎖**,這種鎖主要用于存儲了空間數據的**空間索引**,暫未找到更多資料
**排他鎖**
* 語法:for update
****
**讀鎖**
> 共享的,不堵塞,多個用戶可以同時讀一個資源,互不干擾
**寫鎖**
> 排他的,一個寫鎖會阻塞其他的寫鎖和讀鎖,這樣可以只允許一個人進行寫入,防止其他用戶讀取正在寫入的資源。
**鎖粒度**
> 表鎖,系統性能開銷最小,會鎖定整張表,`MyISAM` 使用表鎖
> 行鎖,最大程度地支持并發處理,但是也帶來了最大的鎖開銷,`InnoDB` 實現行級鎖
## 鎖問題
```
# 查詢innodb引擎的運行時信息
show engine innodb status;
# 查詢所有進程
show processlist;
# 刪除進程
kill id;
# 查看等待鎖的事務
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
```
- 簡介
- PHP
- 字符串函數
- 數組函數
- 正則
- 加密函數
- 面向對象
- 關鍵字
- 設計模式
- 魔術方法
- 機制擴展
- 會話機制
- PHP框架
- laravel
- 問題
- swoole
- easyswoole
- workerman
- 數據庫
- Sphinx
- MongoDB
- MemCache
- Redis
- 基礎操作
- 數據類型
- 持久化
- 分布式鎖
- 內存模型
- redis高級特性
- MySql
- 基礎操作
- 數據類型
- 數據表引擎
- 鎖機制
- 事務處理
- 存儲過程
- 觸發器
- 索引
- 關聯查詢
- 分析SQL語句-優化查詢
- 分區分表
- 主從復制
- MySql安全性
- 網絡協議
- HTTP
- header詳解
- 狀態碼
- nginx-配置
- 邏輯算法
- 時間和空間復雜度
- 常見算法
- 數據結構
- 核心
- 進程、線程、協程
- 存儲容量-計量單位
- 開發軟件及配置
- 版本控制器
- Git
- Fidder
- Fidder-Android7
- 自動化部署
- Jenkins
- supervisor
- Elasticsearch
- LogStash
- RabbitMQ
- AB測試
- JAVA-JDK
- FileBeat
- PhpStorm
- Composer
- Linux
- API安全
- 高并發及大流量相關概念
- 網站優化
- WEB
- Electron