
MYSQL
拉通对齐端到端
这个作者很懒,什么都没留下…
展开
-
redis与mysql双写数据不一致问题
三种更新策略:先更新数据库,再更新缓存(线程不安全)1、线程A更新了数据库;2、线程B更新了数据库;3、线程B更新了缓存;4、线程A更新了缓存;数据库是B写入的值,而缓存中是A写入的旧值写多读少的场景,频繁写缓存很浪费性能;先删缓存,再更新数据库(线程不安全)1、线程A删除了缓存;2、线程B查询缓存发现不存在;3、线程B更新了缓存;4、线程A写入了数据库;数据库是A写入的值,而缓存中是B写入的旧值可以使用延时双删策略进行优化;延时双删:先删..原创 2021-07-07 14:50:01 · 162 阅读 · 0 评论 -
Mysql中的各种日志
Binlog主要作用:主从复制,Master端开启binlog,再将二进制日志传递给slaves回放,来达到数据一致性的目的; 数据恢复; 增量备份;格式:binlog 日志有 Row、Statement、Mixed 三种格式。可以通过 my.cnf 配置文件及 set global binlog_format='ROW/STATEMENT/MIXED'进行修改Row格式Row 格式仅保存记录被修改细节,不记录 sql 语句上下文相关信息。新版本的 MySQL 默认是 Row 格式原创 2021-07-07 14:26:56 · 93 阅读 · 0 评论 -
MYSQL死锁分析
死锁处理:等待,直到超时(50S); 发起死锁检测,主动回滚一条小事务;死锁预防:尽量使用唯一索引,减小锁的粒度; 使用小事务; 操作完了立马提交事务; 不要锁表; 单一事务,尽量重复用一样的锁;信息收集:利用命令 SHOW ENGINE INNODB STATUS查看死锁原因。 调试阶段开启 innodb_print_all_deadlocks,收集所有死锁日志。间隙锁不互斥,临键锁和行锁的S锁、X锁都会互斥,产生死锁;...原创 2021-07-07 14:20:57 · 116 阅读 · 0 评论