一文读懂:Mysql主从同步加速

Mysql 主从同步加速

1) sync_binlog 在 Slave 端设置为 0 。

2) log-slave-updates 从服务器从主服务器接受的更新日志不计入二进制日志。

3) 直接禁用 Slave 的 binlog 。

4) Slave 端,如果存储引擎是 innodb ,innodb_flush_log_at_trx_commit =2 。

5)同步参数调整主库是写,对数据安全性较高,比如 sync_binlog=1,innodb_flush_log_at_trx_commit = 1 之类的设置是需要的而 slave 则不需要这么高的数据安全,完全可以将 sync_binlog 设置为 0 或者关闭 binlog ,innodb_flushlog 也可以设置为 0 来提高 sql 的执行效率。

架构方面

1) 业务的持久层采用分库架构,Mqsql 服务能力水平扩展,分散压力。

2) 单个库读写分离,一主多从,主写读从,分散压力。这样从库比主库压力高,保护主库。

3) 服务在业务和 DB 之间加入 memcache 和 redis 的 cache 层,降低读的压力。

4) 不同业务的 Mqsql 放在不同的物理机,降低压力。

5) 使用比主库更好的硬件设备,Mqsql 压力小,延迟就减少了。

在 MySQL 相关的面试中,如果是考察基础知识,问题多会是数据库索引、主键和外键、事务、ACID、存储过程和触发器等问题。

除此之外,面试官有时候还会考察你关于 MySQL 的性能优化、数据备份和恢复等方面的内容,所以你还会需要了解一些最佳实践以提高数据库的性能和安全性才能在面试的过程中做到有的放矢,真正提升自己的面试成功率。

最后,如果想了解更多有关后端中的 MySQL 考题或是对于上述内容有不同的观点。