也可以从业务场景考虑:
- 使用缓存:我们在同步写数据库的同时,也把数据写到缓存,查询数据时,会先查询缓存,不过这种情况会带来 MySQL 和 redis 数据一致性问题 。
- 查询主库:直接查询主库,这种情况会给主库太大压力,核心场景可以使用,比如订单支付 。
其实还可以在 MySQL 架构上来考虑 。
主库对数据安全性较高,设置配置如下:
sync_binlog = 1
innodb_flush_log_at_trx_commit = 1
而 slave 不需要这么高的数据安全 , 完全可以将 sync_binlog 设置为 0,或者关闭 binlog,innodb_flushlog 也可以设置为 0,来提高 sql 的执行效率 。
- 架构方案:使用多台 slave 来分摊读请求,再从这些 slave 中取一台专用的服务器,只作为备份用,不进行其他任何操作,比如设置 sync_binlog 为0,或者关闭 binglog 等,提升从库查询性能 。
四、后记
再回过头来看这个问题,估计很多同学能回答出一二,但是这个不能成为你的加分项 。
面对如此激烈的竞争环境,同样一个问题,你就需要比别人掌握得更多,回答得更全面,面试官才能对你刮目相看 。
其实笔者当年面试小米时,也面试过这个问题,当时就是基于上面回答的 。
后来的一次 MySQL 分享 , 讲得还不错,当时主管就说 , 笔者的 MySQL 掌握得挺好的,记得当时面试时问过一个 MySQL 主从复制问题 , 他都能回答到非常底层 。
没想到,这都一年多了 , 当时的那场面试 , 居然给主管留下那么深刻的印象 。
作者丨楼仔
来源丨公众号:楼仔(ID:gh_8de52dba3fda)
推荐阅读
- 如何在学信网上申请学历认证,如何从学信网下载学历认证证书呢
- 怎么解决 tiktok 直播时的网络问题
- 高手教你如何用黄金成色辨别黄金
- 使用加湿器会导致加湿器肺炎吗?如何正确使用
- 不续签劳动合同,如何赔偿?
- 有韩国舒淇之称的赵茹珍,是如何穿回衣服并最终封后的
- cdr文件不要的部分要如何删除
- 如何写招聘信息,如何在前程无忧上发布招聘的信息
- 如何设置电脑为节能模式,电脑显示器怎么退出节能模式
- ppt能如何全屏显示