半同步复制
主库执行
INSTALL PLUGIN rpl_semi_sync_master SONAME
'semisync_master.so'``;
SET GLOBAL rpl_semi_sync_master_enabled = 1;
从库执行
INSTALL PLUGIN rpl_semi_sync_slave SONAME
'semisync_slave.so'``;
SET GLOBAL rpl_semi_sync_slave_enabled = 1;
show status like 'Rpl_semi_sync_master_status';
show status like 'Rpl_semi_sync_slave_status';
配置文件
主从数据库的my.cnf配置文件中添加:
plugin-load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
rpl-semi-sync-master-enabled = 1
rpl-semi-sync-slave-enabled = 1
详细可以参考
https://www.cnblogs.com/kevingrace/p/10228694.html
复制并行度
DATABASE 默认值,基于库的并行复制方式;LOGICAL_CLOCK:基于组提交的并行复制方式
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=16
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON
stop slave;
set global slave_parallel_type='logical_clock';
set global slave_parallel_workers=16;
start slave;
事务提交控制
sync_binlog
innodb_flush_log_at_trx_commit
1,1最慢,提速可以配置为0,2
sync_binlog=0
innodb_flush_log_at_trx_commit=2
innodb_io_capacity
mysql> show variables like '%io_c%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| innodb_io_capacity | 200 |
| innodb_io_capacity_max | 2000 |
+------------------------+-------+
2 rows in set, 1 warning (0.03 sec)
可以调整到3000-5000,SSD可到8000
关闭顺序提交
mysql> show variables like '%order_co%';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| binlog_order_commits | ON |
+----------------------+-------+
自动提交
mysql自动提交的效率要远高于开发代码中的事务,批量删除时,可以让开发使用数据库的自动提交,关闭显式提交。
也可以尝试另外一套组提交的逻辑
binlog_group_commit_sync_delay=100
binlog_group_commit_sync_no_delay_count=10000
sync_binlog=1
手机扫一扫
移动阅读更方便
你可能感兴趣的文章