获得徽章 1
#青训营笔记创作活动#
2月17日 打卡day25
今日学习 今天阅读的内容主要介绍了缓存相关的内容,缓存在服务端开发中被用于做系统抗压,面对不同的项目在缓存的使用上也要有相应的考量。缓存在发展的初期是本地缓存的形式,这种形式会出现缓存漂移的问题,为了解决节点本地缓存不一致的问题,开发人员提出了构建集中式缓存的建议,所有业务节点都更新同一份缓存数据,这样可以完美解决节点间缓存不一致的问题。只使用集中缓存在所有业务都实现了集中缓存后就达到了瓶颈,后续出现了多级缓存的设计,即对于一些变更频率高的数据采用集中式缓存,对于变更少的数据采用本地缓存,如此系统性能进一步提升。
展开
评论
#青训营笔记创作活动#
2月16日 打卡day24
今日学习 今天阅读的内容主要介绍了高并发下实现秒杀系统需要注意的内容,秒杀系统需要注意的9个细节分别为:瞬时高并发、页面静态化、秒杀按钮、读多写少、缓存问题、库存问题、分布式锁、mq异步处理以及如何限流的问题。
展开
评论
#青训营笔记创作活动#
2月15日 打卡day23
今日学习 今天阅读的内容主要介绍了HTTPS中加密相关的内容,在信息传递过程中,将明文转换为密文的过程称为加密,而在加密过程中用到的方法叫做密钥,如果加密和解密用到的是同一种密钥的加密形式称为对称加密。而加密与解密使用的是不一样的密钥,分别是公钥和私钥的称为非对称加密。后续博主介绍了HTTPS的加密原理,HTTPS在前期4次握手中,本质上利用了非对称加密的特点,交换三个随机数,目的是为了用随机数生成对称加密的“会话密钥”,在HTTPS后期就是用对称加密方式进行通信。原因是因为非对称加密速度要慢于对称加密。
展开
评论
#青训营笔记创作活动#
2月14日 打卡day22
今日学习 今天阅读的内容主要介绍了Redis相关的内容,在过去直接使用关系型数据库与网站连接就可以应对绝大多数的场景。但是随着互联网时代的崛起,人们对于网站访问速度有了更高的要求,客户端与数据层之间需要一个缓存层来分担压力,Redis就是一款优秀的缓存中间件。博主介绍了30个关于Redis的问题,描述的很清晰。
展开
评论
#青训营笔记创作活动#
2月13日 打卡day21
今天阅读的内容主要介绍了如何建立索引以及如何使用索引,引入索引机制之后,给数据库带来的优势有:整个数据库中数据表的查询速度加快;通过创建唯一索引,可以确保数据表中的数据唯一性,在使用分组和排序时,可以显著减少SQL查询的分组和排序时间;连表查询时,基于主外键字段建立索引,可以带来显著的性能提升;从MySQL的整体架构而言,减少了查询SQL的执行时间,提高了数据库整体的吞吐量。但同时引入索引也会生成本地磁盘文件,需要额外空间存储索引数据;写入数据时,需要额外维护索引结构,增、删、改数据时,都需要额外操作索引;写入数据时维护索引需要额外的时间开销,执行写SQL效率会降低。
在查询SQL中要尽量不使用OR关键字,可以用多SQL或者子查询代替。模糊查询尽量不要使用%开头,实现这个功能可以建立全文索引。编写SQL时要注意字段的数据类型,否则MySQL的隐式转换就会导致索引失效。不要在编写SQL时让索引字段执行计算工作。多条件查询SQL一定要使用联合索引的第一个字段,否则会打破最左匹配原则等。
展开
评论
#青训营笔记创作活动#
2月12日 打卡day20
今日学习 今天阅读的内容主要介绍了关于如何自建数据库可视化平台的知识,博主首先介绍了Bytebase相关的内容,Bytebase是一款面向开发者的数据库变更管理工具,Bytebase可以设置成员,用不同成员来操作Bytebase。Bytebase可以看作一个轻量化的数据库可视化平台,它的独特之处在于它能够创建项目,将数据库移动到项目中。Bytebase让我们能够在没有客户端的情况下也可以方便地进行数据库管理。
展开
评论
#青训营笔记创作活动#
2月11日 打卡day19
今日学习 今天阅读的内容主要介绍了关于如何自建数据库可视化平台的知识,博主首先介绍了Bytebase相关的内容,Bytebase是一款面向开发者的数据库变更管理工具,Bytebase可以设置成员,用不同成员来操作Bytebase。Bytebase可以看作一个轻量化的数据库可视化平台,它的独特之处在于它能够创建项目,将数据库移动到项目中。Bytebase让我们能够在没有客户端的情况下也可以方便地进行数据库管理。
展开
评论
#青训营笔记创作活动#
2月10日 打卡day18
今日学习 今天阅读的内容主要介绍了SQL优化相关的内容,慢SQL优化的思路有:慢查询日志记录慢SQL;explain分析SQL的执行计划;profile分析执行耗时;Optimizer Trace分析详情;确定问题并采用相应的措施。博主同时介绍了一些慢查询经典的案例分析,如隐式转换、最左匹配、深分页问题、in元素过多等。
展开
评论
#青训营笔记创作活动#
2月9日 打卡day17
今日学习 今天阅读的内容主要介绍了SQL执行以及数据返回整个链路相关的内容,博主首先介绍了SQL的诞生,产生SQL的方式有两种一种是由开发者手动编写,另一种是用相关的ORM框架自动生成,从根本上来说SQL的诞生来源于用户的请求,在开发程序的过程中,SQL的大体逻辑都是由业务层的编码决定,而具体的SQL语句则是根据用户的请求参数以及提前定制好的sql骨架拼接而成。SQL真正的执行是要交给数据库去完成。数据库连接池的作用是将数据库连接作为资源进行维护,当需要访问数据库时从数据库连接池中获取,用完之后归还给连接池。
SQL执行过程首先进入SQL接口查询缓存,如果不在缓存中则进入解析器,在解析器后将SQL交给优化器后根据执行计划调用存储引擎API,触发磁盘IO进行数据检索。
展开
评论
#青训营笔记创作活动#
2月8日 打卡day16
今日学习 今天阅读的内容主要介绍了如何排查502错误,常见的4XX错误都是由服务器返回给前端,而5XX错误则大部分是由Nginx这类网关来返回相关错误,当服务器发生异常,nginx发送给服务器的TCP连接就不能正常响应,nginx在得到这一信息后就会返回5xx的错误码给客户端,也就是5xx报错,实际是由nginx识别出来并返回给客户端的,服务端本身不会有5xx日志信息。一般产生502报文是因为nginx收到服务器发送的无效响应,主要原因有服务端过早断开连接、服务端应用进程崩溃。
展开
评论
#青训营笔记创作活动#
2月7日 打卡day15
今日学习 今天阅读的内容主要介绍了后端开发应该具备哪些优秀的习惯,博主介绍了一下几条:注释要全面,写有意义的方法与注释,项目要拆分合理的目录结构,不在循环中远程调用或者进行数据库操作,要优先考虑批量进行,要封装方法的形参,封装通用的模板,封装复杂的逻辑判断条件,保持优化性能的嗅觉,对可变参数进行配置化处理,会总结并使用工具类,要控制方法函数的复杂度,在finally块中对资源进行释放,输出日志,考虑异常情况,处理好异常,考虑系统和接口的兼容性,代码要采取措施避免运行时的错误。
展开
评论
下一页
个人成就
文章被阅读 1,676
掘力值 177
收藏集
0
关注标签
4
加入于