如果你在小公司工作的话,这部分内容会比较适合你,因为正常中大型公司基本上都已经完成了读写分离。你可以这样介绍你的读写分离方案。
最开始我进公司的时候,就发现他们居然连读写分离都还没做,包括我们的核心数据库都没有,而且当我去看观测数据的时候就感觉核心数据库已经快要触及性能瓶颈了。于是我就在公司里面引入了从库。虽然只是准备了一个从库,但是大部分读请求落到从库上,主库的压力就小多了。引入读写分离机制,一方面可以提高了数据库的可用性,另一方面也提高了查询的性能。
有些时候面试官可能会追问你具体是怎么做的,这里我给出简要步骤。
- 准备一个从库。
- 改造业务,允许业务动态切换读主库还是读从库。
- 切换到读从库,看看是否有问题,如果有问题就立刻回滚。
回答的时候你就可以介绍这个简单方案,同时提出一个主从延迟问题。
单库引入读写分离,并不是特别复杂。不过这个过程中要小心主从延迟问题。比如说原本有一个业务是在更新之后立刻读数据,那么就会读到更新后的值。但是如果修改成读从库,就可能还是会读到更新前的值,导致业务出错。在改造业务的过程中要小心这种场景。
你可以利用主从自动切换进一步刷亮点。主从自动切换是指当主库出现问题的时候,能够自动把某个从库提升成主库。
当然如果你们公司本身已经有了读写分离,那么你也可以直接使用这个亮点。