上QQ阅读APP看书,第一时间看更新
2.2 查询分离简介
2.2.1 何为查询分离
查询分离即每次写数据时保存一份数据到其他的存储系统里,用户查询数据时直接从中获取数据,如图2-1所示。
• 图2-1 查询分离示意图
2.2.2 何种场景下使用查询分离
当在实际业务中遇到以下情形时,就可以考虑使用查询分离。
1)数据量大:比如单个表的行数有上千万,当然,如果几百万就出现查询慢的问题,也可以考虑使用。
2)查询数据的响应效率很低:因为表数据量大,或者关联查询太过复杂,导致查询很慢的情况。
3)所有写数据请求的响应效率尚可:虽然查询慢,但是写操作的响应速度还可以接受的情况。
4)所有数据任何时候都可能被修改和查询:这一点是针对冷热分离的,因为如果有些数据走入终态就不再用到,就可以归档到冷数据库了,不一定要用查询分离这个方案。
很多人对查询分离这个概念特别熟悉,但是对于查询分离的使用场景不太理解,这是不够的。只有了解了查询分离的真正使用场景,才能在遇到实际问题时采取最正确的解决方案,这也是本书的立意所在。
接下来谈谈查询分离的实现思路。