网站平台架构演变史(四) - 水平拆分的查询

简介: 之前在讲表拆分的时候氛围垂直拆分和水平拆分垂直拆分的查询其实不难,就是从单表变为了多表,而大部分情况下只是对主表的查询多,从表的查询会很少用到,这样的情况下关联查询不需要太多的考虑水平拆分之前讲了大数据量的情况下根据历史时间来查询,那么今天来说另外一种,还有一只是根据主键id取模后根据这样的规则...

之前在讲表拆分的时候氛围垂直拆分和水平拆分

垂直拆分的查询其实不难,就是从单表变为了多表,而大部分情况下只是对主表的查询多,从表的查询会很少用到,这样的情况下关联查询不需要太多的考虑

水平拆分之前讲了大数据量的情况下根据历史时间来查询,那么今天来说另外一种,还有一只是根据主键id取模后根据这样的规则把数据均匀分布到不同的数据库表中,一般可以以2、5、10来做,那么分页的时候怎么做,用户在查询的时候是不知道你后台怎么查的,他只关心数据的显示,比如我分页显示10条,那么在后台进去查询的时候需要将"10/数据库数量=实际对应每页查询数",比如就用5好了,所有数据都是平均分布到5个不同的数据库中,那么10/5=2,分页的时候需要对这5个数据库查询,那么就是 ' limt row, 2 ',最后合并5次查询的数据来反馈给前端显示。

这是实时的做法,如果不实时,采用缓存或者搜索引擎的时候,可以分别查询一定的数据量来展示。举个栗子,哪怕分页有100多页,一般用户只看前10也,或者20页的数据,那就用20页,每页显示20条数据,20X20/5=80,那么分别同步5个库的80条数据,放入缓存或者搜索引擎中,来展示给用户,这样用户在做查询的时候就非常快,极少数情况下载20页后的数据再去数据库中查。

也许有人会问条件查询、以及排序,如果直接查询数据库的话呢么进行排序会比较难做,甚至不好做,而是用搜索引擎就能很好的解决这个问题。

其实还有一点没讲,会再写1-2篇来结束这次的架构内邀会的总结。近期实在很忙,手上两个产品都要做,抽空总结,公众号更新频率下降了十分抱歉;其中一个产品预期7月底上线,期待与大家见面!

相关文章
|
6月前
|
Java 开发者 微服务
Java企业应用软件系统架构演变史
Java企业应用软件系统架构演变史
94 0
|
6月前
|
前端开发
微前端架构:拆分与整合的艺术
微前端架构是一种全新的前端架构模式,通过将前端应用拆分成小块,实现模块化开发和独立部署,从而提升了前端开发的灵活性和可维护性。本文将深入探讨微前端架构的概念、优势以及实践中的关键问题,帮助读者更好地理解和应用微前端架构。
156 3
|
存储 SQL 关系型数据库
TiDB亿级数据亚秒响应查询整体架构
TiDB亿级数据亚秒响应查询整体架构
950 0
|
3月前
|
消息中间件 监控 Java
解锁Spring Cloud微服务架构的奥秘:深度剖析拆分原则,打造高内聚低耦合的业务创新引擎!
【8月更文挑战第3天】踏入微服务领域,Spring Cloud以丰富组件助力高效系统构建。微服务拆分需遵循原则确保系统高内聚低耦合且能适应变化。首要原则为单一职责,每个服务专注一个业务功能,降低复杂度并提高可维护性。其次,追求高内聚低耦合以减少服务间影响。围绕业务域拆分有助于保持逻辑清晰及团队协作。处理数据一致性问题时,考虑采用最终一致性模型。Spring Cloud提供Eureka、Zuul/Gateway、Sleuth和Config等工具支持服务发现、路由、跟踪及配置管理,共同构建灵活健壮的微服务架构。
73 2
|
4月前
|
SQL
云架构数据倾斜问题之在SQL数据源读取查询时合并小文件如何解决
云架构数据倾斜问题之在SQL数据源读取查询时合并小文件如何解决
|
4月前
|
缓存 Java 应用服务中间件
架构设计篇问题之通过DDD领域模型对服务进行拆分问题如何解决
架构设计篇问题之通过DDD领域模型对服务进行拆分问题如何解决
|
4月前
|
监控 Java API
Java面试题:解释微服务架构的概念及其优缺点,讨论微服务拆分的原则。
Java面试题:解释微服务架构的概念及其优缺点,讨论微服务拆分的原则。
74 0
|
4月前
|
监控
交易平台---架构设计第一步拆分模块,拆分为7个模块
交易平台---架构设计第一步拆分模块,拆分为7个模块
|
4月前
|
缓存 Devops 微服务
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
|
6月前
|
敏捷开发 运维 监控
【专栏】微服务架构,以敏捷、灵活著称,通过拆分大型应用为小型自治服务,简化开发运维
【4月更文挑战第27天】微服务架构,以敏捷、灵活著称,通过拆分大型应用为小型自治服务,简化开发运维。本文探讨其基本概念、起源,核心优势(如敏捷开发、高可伸缩性)及挑战(系统复杂度、数据一致性),并分享实施策略(服务划分、技术选型、CI/CD)与实践案例(Netflix、Uber、Spotify),展示微服务如何重塑软件开发,并成为未来复杂应用系统的基础。
135 1

热门文章

最新文章