>[info]## ## **Innodb核心特性——事務**
>[info]合理的應用Mysql事務機制
1. 【建議】事務中`INSERT|UPDATE|DELETE|REPLACE`語句操作的行數控制在2000以內,以及WHERE子句中IN列表的傳參個數控制在500以內。
2. 【建議】批量操作數據時,需要控制事務處理間隔時間,進行必要的sleep,一般建議值5-10秒。
3. 【建議】對于有`auto_increment`屬性字段的表的插入操作,并發需要控制在200以內。
4. 【強制】程序設計必須考慮“數據庫事務隔離級別”帶來的影響,包括臟讀、不可重復讀和幻讀。線上建議事務隔離級別為`repeatable-read`。
5. 【建議】事務里包含SQL不超過5個(支付業務除外)。因為過長的事務會導致鎖數據較久,MySQL內部緩存、連接消耗過多等雪崩問題。
6. 【建議】事務里更新語句盡量基于主鍵或`unique key`,如`update … where id=XX`; 否則會產生間隙鎖,內部擴大鎖定范圍,導致系統性能下降,產生死鎖。
7. 【建議】盡量把一些典型外部調用移出事務,如調用webservice,訪問文件存儲等,從而避免事務過長。
8. 【建議】對于MySQL主從延遲嚴格敏感的select語句,請開啟事務強制訪問主庫。
```
**一個成功事務的生命周期**
begin;
sql1
sql2
sql3
...
commit;
**一個失敗事務的生命周期**
begin;
sql1
sql2
sql3
...
rollback;
\*\*結束事務的控制語句: commit 和 rollback \*\*
```
- 序言
- 為什么要編碼規范?
- 如何進行編碼規范?
- 編碼規范宏觀微觀細節
- PHP編碼規范
- 基礎規范
- 1 語法規范
- 2 變量命名規范
- 3 常量命名規范
- 4 類命名規范
- 5 函數命名規范
- 6 方法命名規范
- PSR-規范
- 基本代碼規范
- Tp項目規范
- TP命名規范
- Tp目錄規范
- Tp基礎目錄構架
- Tp項目開發思考
- Tp控制器規范
- 控制器構架
- Tp模型規范
- 模型性能優化
- Tp業務規范
- 返回結構規范
- 業務異常規范
- Tp輸出規范
- Restful API
- 模板渲染輸出
- Tp異常規范
- 異常碼狀態碼
- 異常輸出方式
- Tp驗證規范
- Tp路由規范
- Tp加密規范
- Password Hashing
- Tp緩存規范
- 常見數據緩存
- 緩存設計思考
- Tp日志規范
- 日志信息
- 日志分析
- Tp日志接管分析
- Tp性能優化
- vendor包規范
- 項目自動化思考
- 項目檢測告警思考
- 項目注釋規范
- Mysql設計規范
- 序言
- 命名規范
- 表及字段規范
- 索引規范
- 索引原理
- Sql規范
- 事務規范
- 讀寫分離
- 樂觀鎖悲觀鎖
- 數據庫審計
- 性能優化
- 查詢優化神器
- 慢查詢優化步驟
- 分庫分表、分區表
- 根據sql日志篩選數據
- 設計原則
- MongoDB規范
- MongoDB基礎
- MongoDB設計
- MongoDB安全性
- MongoDB備份
- 操作手冊規范
- API文檔說明規范
- 管理端操作手冊
- 用戶使用說明書
- 溯源項目構想