数据库调优和主从排查

数据库优化:

A.mysql语句优化【大多数语句不能简化】

B.查询命令优化:explain命令进行查询进程是否有做索引,没有经过索引,则加上索引【加索引以后,查询并没有变快,查询是否加对索引,没加对索引,进程不走索引,无法优化】

C.主从备份延迟优化:查看i/o线程是否为单线程【MySQL的主从复制都是单线程的操作,主库对所有DDL和DML产生的日志写进binlog,由于binlog是顺序写,所以效率很高。Slave的IO Thread线程从主库中bin log中读取取日志。Slave的SQL Thread线程将主库的DDL和DML操作事件在slave中重放。DML和DDL的IO操作是随即的,不是顺序的,时间会慢很多,Slave本机上还有查询,并且Slave_SQL_Running也是单线程的,所以一个DDL卡住了,需要执行10分钟,那么所有之后的DDL会等待这个DDL执行完才会继续执行,这就导致了延时】

优化办法:升级数据库为5.7以上,开启多线程

D.主键重复:在slave已经有该记录,又在master上插入了同一条记录

解决办法:在slave上用desc hcy.t1; 先看下表结构:删除重复的主建,在master上和slave上再分别确认一下。

E.更新丢失:在master上更新一条记录,而slave上找不到,丢失了数据

解决办法:在master上,用mysqlbinlog 分析下出错的binlog日志在干什么,在slave上,查找下更新后的那条记录,应该是不存在的。

mysql> select * from t1 where id=2;
Empty set (0.00 sec)

然后再到master查看

把丢失的数据在slave上填补,然后跳过报错即可。

F.中继日志损坏

解决办法:找到同步的binlog和POS点,然后重新做同步,这样就可以有新的中继日值了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值