修改表结构:http://zhaoyun.blog.51cto.com/2090116/727252
通过检查slave状态:
show slave status\G;
分析binlog:
/usr/local/mysql/bin/mysql
binlog
-usystem -p'BK_root2010!' -vv -S /data/mysqldata/3306/mysql.sock
--start-position='
9450369'
/data/mysqldata/3306/binlog/mysql-bin.000556 >/home/mysql
/mysql-restore.sql
查看delete语句
DELETE FROM baike.bk_sham_attention where baike_id=507 limit 10000;(删除一万条数据)
发现slave会一条一条数据删除,放在一个特别大的事务里面(基于row的)
根源:这是一个RBR的bug
原因:这表上你看看是不是没有主键或者唯一索引
查看问题表:
CREATE TABLE `bk_sham_attention` (
`baike_id` int(11) NOT NULL,
`uid` bigint(12) NOT NULL,
`addtime` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
确实没有索引和自增项。
修改表,加一个自增项
use baike;
set names gbk;
alter table bk_sham_attention add id bigint(12) not null auto_increment primary key not null first ;
修改表结构,50w的数据4秒钟。