臧富祥 ^回到顶部

您的当前位置:首页 > 最新IT资讯 > MySQL > MySQL优化-事务和锁优化

MySQL优化-事务和锁优化

所属分类: MySQL   2020-03-18 22:23:48  编辑:admin  浏览次数 538 次

Mysql分布式事务:

同时管理若干管理器事务的一个过程。

第一个阶段:所有的分支预备,事务管理器告知要准备提交,每个分支指示任务的可行性

 

第二个阶段:告知资源管理器提交或者回滚

分布式事务:多个事务活动合并成一个事务单位

启动事务:XA START xid(gtrid、bqual、formatID )

准备事务:XA PREPARE xid

提交事务:XA COMMIT xid

回顾事务:XA ROLLBACK xid

 

两类分布式事务:

内部分布式事务:同一个实例、跨多个数据引擎的事务(二进制日志作为协调者)

由二进制日志作为协调者

 

外部分布式事务:应用层介入作为协调者来控制事务的提交或者回滚

锁机制的选择

锁的区别:

Lock table tablename

表级锁:开销小、加锁快,不会出现死锁,并发度低(myisam)

一般做update和delete操作会使用表锁

全表扫描以及Group by操作(没有写的操作)

行级锁:开销大,加锁慢,会出现死锁,发生锁的冲突(innodb)

页锁:基于表锁和行锁之间

锁阀值:innodb_lock_wait_timeout  60秒

Myisam:

加读锁,不会阻塞读请求,会阻塞写请求

加写锁,会阻塞读请求以及写请求

Innodb:行级锁,存储引擎是通过索引加锁来实现的,只有通过索引来检索数据,innodb才使用行级锁,否则使用表级锁.

锁定模式:共享锁、排他锁

隔离级别:4种

获取锁的等待情况:(table_locks_waited/table_locks_immediate)

show status like 'Table%'   分析状态变量

show  status like 'innodb_row_lock%'  查看锁的情况


随笔文章检索

随笔文章目录