获得徽章 3
- #青训营笔记创作活动#
2月13 day29
今日学习
解决高并发的性能瓶颈:独立部署,页面优化(静态化、秒杀按钮、浏览器层请求拦截),负载均衡【OSPF、LVS、Nginx(轮询、加权轮询、ip hash轮询)】,缓存(读多写少、缓存预热);缓存常见问题:缓存击穿、缓存穿透展开1点赞 - #青训营笔记创作活动#
2月12 day28
今日学习
跨域问题的本质是浏览器为了保证用户的一种安全拦截机制,想要解决跨域问题,常见实现方式有 5 种:通过注解实现局部跨域、通过配置文件实现全局跨域、通过 CorsFilter 对象实现全局跨域、通过 Response 对象实现局部跨域,通过 ResponseBodyAdvice 实现全局跨域。展开1点赞 - #青训营笔记创作活动#
2月11 day27
今日学习
什么是分库分表:通过一定的规则,将原本数据量大的数据库拆分成多个单独的数据库,将原本数据量大的表拆分成若干个数据表,使得单一的库、表性能达到最优的效果,以此提升整体数据库性能。为什么分库分表:单机数据库的存储能力、连接数是有限的,它自身就很容易会成为系统的瓶颈。当单表数据量在百万以里时,还可以通过添加从库、优化索引提升性能。一旦数据量朝着千万以上趋势增长,再怎么优化数据库,很多操作性能仍下降严重。为了减少数据库的负担,提升数据库响应速度,缩短查询时间,这时候就需要进行分库分表。什么时候分库分表:是否分库分表的关键指标是数据量。如何分库分表:垂直和 水平两种纬度进行拆分。数据存在哪个库的表:通过取模算法 、范围限定算法、范围+取模算法 、预定义算法决定一条数据具体应该存在哪个数据库的哪张表。分库分表出来的问题:分页、排序、跨节点联合查询,事务一致性,全局唯一的主键,多数据库高效治理,历史数据迁移。分库分表架构模式分为:客户模式,代理模式。展开1点赞 - #青训营笔记创作活动#
2月9 day26
今日学习
Redis的使用;Redis面试的三大常客:缓存穿透,缓存雪崩,缓存击穿;缓存与数据库的一致性问题:先更新缓存,再更新数据库、先更新数据库,再更新缓存、先删除缓存,再更新数据库、先更新数据库,再删除缓存以及并发情况;数据一致性解决方案:延时双删策略、重试、消息队列异步重试、Canal 订阅日志实现展开评论点赞 - #青训营笔记创作活动#
2月8 day25
今日学习
缓存在系统中的作用为降低CPU处理,减少网络交互,加快响应速度;缓存分为单机缓存和集中缓存;缓存的核心问题有:缓存一致性问题,缓存可靠性问题,缓存击穿、雪崩问题,缓存淘汰机制,不要将缓存作为存储使用,恰当选择本地缓存还是集中缓存展开评论点赞 - 2月7 day24
今日学习
高并发的细节:瞬时高并发、页面静态化、秒杀按钮、读多写少、缓存问题、库存问题、分布式锁、mq异步处理、限流评论点赞 - #青训营笔记创作活动#
2月6 day23
今日学习
大数取模运算是不可逆的,因此无法暴力解密。但是结合欧拉定理,可以选取出合适的p(公钥), q(私钥), N(用于取模的大数),让原本不可逆的运算在特定情况下,变得有那么点“可逆”的味道。数学原理决定了我们用公钥加密的数据,只有私钥能解密。反过来,用私钥加密的数据,也只有公钥能解密。
HTTPS相当于HTTP+TLS,目前主流的是TLS1.2,基于TCP三次握手之后,再来TLS四次握手。
TLS四次握手的过程中涉及到两对私钥和公钥。分别是服务器本身的私钥和公钥,以及CA的私钥和公钥。展开评论点赞 - #青训营笔记创作活动#
2月5 day22
今日学习
Redis是一个开源的、键值对型的数据存储系统。使用C语言编写,遵守BSD协议,可基于内存也可持久化的日志型数据库,提供了多种语言的API,被广泛用于数据库、缓存和消息中间件。并且支持多种类型的数据结构,用于应对各种不同场景。可以存储多种不同类型值之间的映射,支持事务,持久化,LUA 脚本以及多种集群方案等。展开评论点赞 - #青训营笔记创作活动#
2月4 day21
今日学习
MySQL的索引分类有以下几种:在数据结构的层次上分为B+Tree索引,Hash索引,R-Tree索引,R-Tree索引;在字段数量的层次上分为基于单个字段建立索引的单列索引以及由多个字段组合建立索引的多项索引;在功能逻辑的层次上分为普通索引,唯一索引,主键索引,全文索引,空间索引;在存储方式的层次上分为聚簇索引和非聚簇索引。
以功能逻辑的层次来划分索引,这是最常用的方式展开评论点赞 - #青训营笔记创作活动#
2月3 day20
今日学习
①查询SQL中尽量不要使用OR关键字,可以使用多SQL或子查询代替。
②模糊查询尽量不要以%开头,如果实在要实现这个功能可以建立全文索引。
③编写SQL时一定要注意字段的数据类型,否则MySQL的隐式转换会导致索引失效。
④一定不要在编写SQL时让索引字段执行计算工作,尽量将计算工作放在客户端中完成。
⑤对于索引字段尽量不要使用计算类函数,一定要使用时请记得将函数计算放在=后面。
⑥多条件的查询SQL一定要使用联合索引中的第一个字段,否则会打破最左匹配原则。
⑦对于需要对比多个字段的查询业务时,可以拆分为连表查询,使用临时表代替。
⑧在SQL中不要使用反范围性的查询条件,大部分反范围性、不等性查询都会让索引失效。
尽量让自己编写的SQL不会导致索引失效,写出来的SQL能走索引查询,那就能在很大程度上提升数据检索的效率。展开评论点赞