mysql怎么设置延迟,mysql 延迟关联

mysql无主键无索引表导致同步延迟

Mysql主从同步延迟发生

创新互联公司是一家集网站建设,昌宁企业网站建设,昌宁品牌网站建设,网站定制,昌宁网站建设报价,网络营销,网络优化,昌宁网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

现象:

pos一直保持不变,并且behind一直在增加,

备库执行:

SQL thread State列状态如下:

代表 线程已经从中继日志读取一个事件,可以对事件进行处理了。

查看binlog:

查看表结构发现没有主键和索引。

延迟发生原因:

首先mysql主从是基于行的复制。

举例解释下什么是基于行的复制,假设主库执行以下sql删除了表A中的100条数据:

这时mysql会把这个SQL按照每条记录,拆分成100条delete SQL在备库上执行,mysql这么做的目的也是最大程度的保证同步数据的可靠性。

但是可靠性的提升伴随而来的便是日志量的增多,同步过程会占用大量带宽。

其次,该表即无主键,也没有索引。

假设还是以上对A表的删除操作,拆成的100条delete SQL传递并且在备库执行,因为表即无主键,也没有索引,所以每执行一次都要做全表扫描才能定位到要删除的那一条数据,可想而知同步效率会低很多。

解决方案:

1 表设计时就要有主键;

2 如果延迟已经发生,并且表不是特别大的情况下,在备库上为该表创建索引或是主键。

mysql ngram怎么哪里设置

全局动态变量,单位微妙,默认0,范围:0~1000000(1秒)。

表示binlog提交后等待延迟多少时间再同步到磁盘,默认0,不延迟。设置延迟可以让多个事务在用一时刻提交,提高binlog组提交的并发数和效率,提高slave的吞吐量。

mysql延迟关联怎么理

可以通过监控show slave status\G命令输出的Seconds_Behind_Master参数的值来判断,是否有发生主从延时。

其值有这么几种:

NULL - 表示io_thread或是sql_thread有任何一个发生故障,也就是该线程的Running状态是No,而非Yes.

0 - 该值为零,是我们极为渴望看到的情况,表示主从复制良好,可以认为lag不存在。

正值 - 表示主从已经出现延时,数字越大表示从库落后主库越多。

负值 - 几乎很少见,只是听一些资深的DBA说见过,其实,这是一个BUG值,该参数是不支持负值的,也就是不应该出现。


本文名称:mysql怎么设置延迟,mysql 延迟关联
文章源于:http://abwzjs.com/article/hdiigp.html