源自生产环境磨砺的进阶技巧,涵盖大数据导入、复制架构运维、数据去重等高频痛点场景。
痛点:InnoDB 聚簇索引特性导致乱序主键插入性能随数据量呈指数级下降。
方案:借道 MyISAM「曲线救国」
innodb_buffer_pool_size 释放内存concurrent_insert=2 尾部并发插入ALTER TABLE ... ENGINE=InnoDB 一键转换并建索引速度较直接导入提升 10 倍以上。
场景:A<->B 双主,仅 A 对外服务。需批量修正数据。
方案:在备库 B 直接执行纠偏 SQL,产生 ROW 格式 Binlog 回流至 A。
ROW 复制走 Handler API 无 SQL 解析开销,纯 IO 操作,速度远超存储过程分批提交。
难点:ROW 模式下 replicate-do-db 仅识别 db.table 格式,USE db 无效。
变通:
slave-skip-errors=all非目标库的 DML 因表不存在报错被跳过,间接实现库级过滤。
根因:切换过快导致 A/B 产生的 SQL 在 C/D 间来回复制,server_id 判断机制使事件不被销毁。
规避:
STOP SLAVE 断开 B->CSeconds_Behind_Master=0CHANGE MASTER TO 建立 C<->D误区:DELETE ... WHERE id NOT IN (SELECT MIN(id) ...) 效率极低。
正解:
CREATE TABLE tmp AS SELECT DISTINCT ... FROM src 去重入临时表TRUNCATE srcINSERT INTO src SELECT * FROM tmp利用批量 DML 替代逐行删除,性能提升数量级。