MySQL如果在指定id
进行插入的时候,如果这个id大于表的自增值,那么MySQL会把表的自增值修改为这个id,并加1,但是如果我们把主键更新成更大的值,MySQL并不会把表的自增值修改为更新后的值,会埋下一颗定时炸弹,在某些情况下,如DDL,重启等之后,业务开始报错,会误认为DDL或者重启导致业务表的插入故障。
【数据存储与数据库】 【mysql】 【测试】 【binlog】 点击查看原文>
Sep
10
2018
Sep
07
2018
Aug
30
2018
Aug
22
2018
Aug
17
2018
mysql备份与还原
【数据存储与数据库】 【linux】 【mysql】 【SQL】 【日志】 【数据库】 【js】 【test】 【database】 …
Aug
09
2018
Aug
05
2018
Aug
01
2018
一、MySQL为什么会延迟 数据延迟: 是指master执行了N个事务,slave却只执行了N-M个事务,说明master和slave之间产生了延迟 延迟原因:延迟的原因很多种,大部分情况下是 slave的处理能力跟不上master导致 接下来,我们从各种角度分析下延迟的原因 1.1 MySQL复制的架构
通过架构图,可以直观的看到数据延迟的点有哪些,当然也就可以知道如何优化了 1.2 大事务导致的延迟
大家都知道,binlog的写入时机是在commit的时候,redo的写入时机是在事务执行阶段就开始。
【云栖社区】 【数据存储与数据库】 【系统研发与运维】 …
Aug
01
2018
一、并行复制的背景 首先,为什么会有并行复制这个概念呢?1. DBA都应该知道,MySQL的复制是基于binlog的。 2.
MySQL复制包括两部分,IO线程 和 SQL线程。 3.
IO线程主要是用于拉取接收Master传递过来的binlog,并将其写入到relay log 4.
SQL线程主要负责解析relay log,并应用到slave中 5.
不管怎么说,IO和SQL线程都是单线程的,然后master却是多线程的,所以难免会有延迟,为了解决这个问题,多线程应运而生了。
【云栖社区】 【数据存储与数据库】 【系统研发与运维】 【linux】 …
Jul
25
2018