# tp6高并发更新 **Repository Path**: CCAPI/tp6-high-concurrency-update ## Basic Information - **Project Name**: tp6高并发更新 - **Description**: 在高并发应用场景下,MYSQL的更新可能会出错 - **Primary Language**: PHP - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-03-01 - **Last Updated**: 2024-06-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # tp6高并发更新 - 在高并发应用场景下,MYSQL的更新可能会出错 ## 同时更新锁定时出错 ![输入图片说明](1.png) - http://xx.xx.xx.xx:xx/behavior/Operate/increase 添加 - http://xx.xx.xx.xx:xx/behavior/Operate/Highconcurrency 锁定 ### 添加数据测试 - 用ab进行添加测试 - ab -c 100 -n 100 http://xx.xx.xx.xx:xx/behavior/Operate/increase - 并发100,100个请求(一次请求添加一条数据) - 添加没有什么问题 ![输入图片说明](2.png) ### 锁定数据测试 - 用ab进行锁定测试 - ab -c 100 -n 100 http://xx.xx.xx.xx:xx/behavior/Operate/Highconcurrency - 并发100,100个请求(取出符合status=0条件的数据并更新为1) ![输入图片说明](3.png) - 请求100次只更新了50条数据,说明存在高并发带来的更新错误 ### 解决方案 - MYSQL加了个悲观锁,解决了这个问题 ![输入图片说明](4.png) - 用ab进行添加测试 - ab -c 100 -n 100 http://xx.xx.xx.xx:xx/behavior/Operate/increase - 删除了之前数据并且添加了全新的100条数据 - ab -c 99 -n 99 http://xx.xx.xx.xx:xx/behavior/Operate/HighconcurrencyS - 并发99,99个请求(取出符合status=0条件的数据并更新为1) - 精准锁定在第99个 ![输入图片说明](5.png)