热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

我只想写好业务代码,可为什么要关心数据库游标?(架构好文)

《大专栏》第八阶“架构分层”已经放出。画外音:文末福利,仅限今天。为什么互联网系统架构分层会越来越多?当系统越来越复杂的时候,

《大专栏》第八阶“构分层”已经放出。

画外音:文末福利,仅限今天。

为什么互联网系统架构分层会越来越多?

当系统越来越复杂的时候,为了:

(1)让上游更高效的获取与处理数据,必须复用;

(2)让下游能屏蔽数据的获取细节,必须封装;

上述复用和封装,在系统架构上的呈现,就是“分层”

每次都要连接数据库获取数据,编码非常低效,有什么痛点?

每次数据库访问,都需要:

(1)创建连接,创建资源;

(2)拼装SQL;

(3)执行SQL并获取结果集;

(4)通过游标遍历结果集,拿到每一行,分析行数据,拿到每一列;

(5)关闭连接,回收资源;

很多重复的代码要编写,效率很低。

怎么优化?

分层抽象,分离DAO层。

单体架构,编码非常低效,有什么痛点?

每次数据获取,都需要:

(1)关注缓存细节(Redis?MC?);

(2)关注存储引擎细节(MySQL?);

(3)关注分库分表;

(4)关注数据路由规则;

很多重复的代码要编写,效率很低。

怎么优化?

分层抽象,分离基础服务层(微服务)。

微服务架构,编码非常低效,有什么痛点?

每次数据获取,都需要:

(1)要访问很多RPC接口,获取很多公共的数据;

(2)站点层与基础服务层之间的连接关系非常复杂;

(3)不同垂直业务之间有需要共性业务,代码要冗余很多次;

很多重复的代码要编写,效率很低。

怎么优化?

分层抽象,分离共性业务服务层。

画外音:可以先简单理解为“中台业务服务”。

PC/H5/APP多端业务,编码非常低效,有什么痛点?

每次数据获取,都需要:

(1)大部分业务逻辑相同,只有少量展现/交互不一样;

(2)一旦一个服务RPC接口升级,多端都要升级;

(3)一旦一个服务bug出现,多端都要升级;

(4)PC/H5/APP多端相同的逻辑存在大量代码拷贝;

很多重复的代码要编写,效率很低。

怎么优化?

分层抽象,前后端分离。

大数据量,高并发量的微服务架构,编码非常低效,有什么痛点?

数据库侧数据获取,往往:

(1)根据业务进行数据路由,水平切分;

(2)不确定路由的接口,要遍历全库;

(3)有时候要多个库拿数据,然后到内存排序,例如跨库分页需求;

(4)…

很多微服务有很多重复的代码要编写,效率很低。

怎么优化?

分层抽象,数据库中间件。

可以看到,架构分层,对研发效率的提升,与复杂性的屏蔽,至关重要。

18次直播回看,以及《架构师第八阶:架构分层》的5节也已经放出,系统性的详聊了上面这些问题,感兴趣的同学可以扫码看细节。

18次直播精华回看,有哪些内容?

(1)每秒100w请求,秒杀架构

(2)千万粉丝,feed架构

(3)千万同时在线,IM架构

(4)每秒100w检索,搜索引擎内核架构

(5)MQ内核细节

(6)RPC内核细节

(7)数据库架构

(8)多机房多活架构与细节

(9)分布式调用链追踪架构与细节

(10)3周自研自动化上线平台

(11)区块链中的架构理念

(12)数据库性能瓶颈定位

(13)反范式数据库设计

(14)微服务抽离与解耦

(15)经典架构10问

(16)微服务与数据库架构10问

(17)技术人职业发展规划

(18)InnoDB内核架构与细节

每次1-2小时不等,全部已放出。

50节架构师训练营干货重放,有哪些内容?

第一阶:技术选型(5节,已放出)

第二阶:接入层架构(5节,已放出)

第三阶:极速性能优化(3节,已放出)

第四阶:微服务架构(7节,已放出)

第五阶:数据库架构(6节,已放出)

第六阶:缓存架构(7节,已放出)

第七阶:架构解耦(6节,已放出)

第八阶:架构分层(5节,已放出)

第九阶:架构进阶

把控住这些,应该能成为一名P8的架构师吧?

其他内容何时放出?

2.21之前全部放出。

《大专栏》,有没有折扣?

(1)巨折899(原价1699);

(2)仅限今天,还可领150优惠券(749);

如何领优惠券?

扫码领券,直减150,仅限今天

如何入手《大专栏》?

扫码,入手架构师之路《大专栏》

白嫖了这么多年,欢迎为情怀补票,希望大家有收获,早日成为P8P9架构师。

画外音:建议平均每天花2小时,倍速看1-2集直播,5节训练营,春节20天假期搞定。

讨论:

贵司的架构分层,在哪个阶段?

阅读原文,订阅《大专栏》,150福利,仅限今天。


推荐阅读
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 数字账号安全与数据资产问题的研究及解决方案
    本文研究了数字账号安全与数据资产问题,并提出了解决方案。近期,大量QQ账号被盗事件引起了广泛关注。欺诈者对数字账号的价值认识超过了账号主人,因此他们不断攻击和盗用账号。然而,平台和账号主人对账号安全问题的态度不正确,只有用户自身意识到问题的严重性并采取行动,才能推动平台优先解决这些问题。本文旨在提醒用户关注账号安全,并呼吁平台承担起更多的责任。令牌云团队对此进行了长期深入的研究,并提出了相应的解决方案。 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
author-avatar
啊哈哈
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有