mysql 锁优化
来源:互联网 发布:大连软件职业学院地址 编辑:程序博客网 时间:2024/05/21 05:17
INSERT INTO T_DriverTop(driverId,breakPer,orderNum,totalOrderNum,breakNum,createDate)
SELECT t1.DriverId,t1.breakPer,IFNULL(t2.orderNum,0) AS orderNum,t1.totalOrderNum,t1.breakNum,SYSDATE() FROM
(
SELECT (b.breakNum/o.totalOrderNum) AS breakPer,o.DriverId,o.totalOrderNum,b.breakNum FROM
(SELECT COUNT(1) AS breakNum,DriverId FROM T1 WHERE DriverComment IN (3,8,9) GROUP BY DriverId) AS b
INNER JOIN
(SELECT COUNT(1) AS totalOrderNum,DriverId FROMT1 GROUP BY DriverId) AS o
ON b.DriverId = o.DriverId
WHERE (b.breakNum/o.totalOrderNum) < 0.1
) t1
LEFT JOIN
(
SELECT COUNT(1) AS orderNum,t.DriverId FROM T1 t
WHERE DATE_FORMAT(t.UpTime,'%Y%m%d')>=(SELECT TIMESTAMPADD(DAY,-30,DATE_FORMAT(SYSDATE(),'%Y%m%d')))
GROUP BY t.DriverId
) t2
ON t1.DriverId=t2.DriverId
ORDER BY t2.orderNum DESC
SELECT t1.DriverId,t1.breakPer,IFNULL(t2.orderNum,0) AS orderNum,t1.totalOrderNum,t1.breakNum,SYSDATE() FROM
(
SELECT (b.breakNum/o.totalOrderNum) AS breakPer,o.DriverId,o.totalOrderNum,b.breakNum FROM
(SELECT COUNT(1) AS breakNum,DriverId FROM T1 WHERE DriverComment IN (3,8,9) GROUP BY DriverId) AS b
INNER JOIN
(SELECT COUNT(1) AS totalOrderNum,DriverId FROMT1 GROUP BY DriverId) AS o
ON b.DriverId = o.DriverId
WHERE (b.breakNum/o.totalOrderNum) < 0.1
) t1
LEFT JOIN
(
SELECT COUNT(1) AS orderNum,t.DriverId FROM T1 t
WHERE DATE_FORMAT(t.UpTime,'%Y%m%d')>=(SELECT TIMESTAMPADD(DAY,-30,DATE_FORMAT(SYSDATE(),'%Y%m%d')))
GROUP BY t.DriverId
) t2
ON t1.DriverId=t2.DriverId
ORDER BY t2.orderNum DESC
LIMIT 0,#{max}
虽然 mysql repeatable read或以下的事务隔离级别,使用MCC,当MCC的使用仅限于 单个select 查询。
像上面那种, insert from select 这种嵌套是无法使用mcc,直接使用x锁。 导致其他insert 或者update T1表的地方都抛
java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
; SQL []; Lock wait timeout exceeded; try restarting transaction; nested exception is java.sql.SQLException: Lock wait timeout excee
ded; try restarting transaction异常
解决办法:将select的结果放临时表,,,再做跟insert做关联就可以避免锁住主表
参考
事务隔离级别
MCC
0 0
- mysql 锁优化
- Mysql锁的优化
- Mysql锁的优化
- Mysql锁的优化
- MySQL锁机制及优化
- 优化Mysql
- mysql优化
- mysql优化
- mysql优化
- MySQL 优化
- MySQL优化
- mysql 优化
- mysql 优化
- Mysql优化
- 优化Mysql
- 优化Mysql
- 优化MYSQL
- mysql 优化
- 简单介绍抽屉效果
- CArray::SetSize 的用法
- macro
- Visual Studio 中两个窗体(WinForm)之间相互传值的方法
- Nexus5设备ROOT
- mysql 锁优化
- GC是什么?为什么要有GC?
- 自由变换相机远近、旋转和平移
- Schematron
- xcodebuild 使用手册
- 预装软件愁多少,wifi共享精灵你知否?
- 结合HierarchyViewer和APK文件反编译获得APP元素id值
- 第二章 武技阁
- XenServer 6: Storage repository on software RAID