当前位置:   article > 正文

mysql 锁表后同步_同步mysqlslave锁表问题_MySQL

mysql slave read log updates 锁表问题

bitsCN.com

问题描述:

如图:

slave 上的日志更新的updata 与 web 请求过来的select 表互相锁表,导致同步堵塞

mysql slave 负载飙升,网站防问巨慢。

1405L922353120-11Y0.jpg

问题分析:

那么,为何从库在处理日志时会发生lock的状态呢?

一般我们都将主从库读写分离,主库负责写操作,从库负责读操作。而一般的web应用读数据的操作要远远大于写数据的量,所以我们在主库上几乎看不到因为更新数据导致的lock。那么从库的lock怎么发生的呢?

网上查了一下是这么说的:

对MyISAM表的读操作(加读锁),不会阻塞其他进程对同一表的读请求,但会阻塞对同一表的写请求。只有当读锁释放后,才会执行其它进程的写操作。

对MyISAM表的写操作(加写锁),会阻塞其他进程对同一表的读和写操作,只有当写锁释放后,才会执行其它进程的读写操作。

从上面可以看出,我们在select的时候默认是会阻塞写请求的,当一个表数据量到达了千万级别,那么执行一个select很有可能就会变得比较费劲,再加上一定的压力,不断地select操作,虽然读数据不会受到影响,但是却阻塞了从库处理同步日志的操作。到目前为止还没找到真正的解决方法

问题处理:

1.优化查询时间长的sql

2.压力较大的情况下使用几个从库值得考量,如果使用多个从库也是可以适当缓解上面lock的情况发生。(目前已经加了2个salve 来分散salve的压力)

3.到目前为止还没找到真正的解决方法.进一步优化中。

如果谁有好的解决方法,请告诉我一下。

本文出自 “一阵风” 博客bitsCN.com

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

TAG标签:表

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/750554
推荐阅读
相关标签
  

闽ICP备14008679号