获得徽章 3
#青训营 x 字节后端训练营#
在使用官方库时遇到了问题,我们很容易通过搜索引擎找到解决方案,或者直接向 Go 官方提 issue 。当切换为开源库时,如果遇到了问题,并不一定能及时得到处理。
官方库的 API 几乎可以保证能与 Go 版本的迭代一直兼容,而三方库可能存在潜在的版本兼容问题,这也是切换时需要考虑的问题。
展开
评论
#青训营笔记创作活动#
02月14日 打卡
今天阅读——好好的系统,为什么要分库分表?
单机数据库的存储能力、连接数是有限的,它自身就很容易会成为系统的瓶颈。当单表数据量在百万以里时,我们还可以通过添加从库、优化索引提升性能。
一旦数据量朝着千万以上趋势增长,再怎么优化数据库,很多操作性能仍下降严重。为了减少数据库的负担,提升数据库响应速度,缩短查询时间,这时候就需要进行分库分表。[7172374200018010142#第五届青训营阅读打卡#]
展开
评论
#青训营笔记创作活动#
02月10 打卡day32
本文就像字典一样,罗列了mySQL的很多命令。
可以当做字典用,不会的时候再来查。
今天才发现,真的要APP打卡才行。web没有被记录。
评论
#青训营笔记创作活动#
02月07日 打卡day31
今天阅读——用万字长文来讲讲本地锁至分布式锁的演进和Redis实现,扩展 Redlock 红锁
从使用简单的 Redis 中的 SET KEY NX命令实现分布式锁
到使用SET KEY NX EX TIME 命令解决死锁问题
到增加身份标识(UUID) 解决锁被其他人释放问题
再到使用 Lua 脚本,将解锁操作变成原子性操作
最后讲述了Redisson实现分布式锁,解决了锁自动续期问题
展开
评论
#青训营笔记创作活动#
02月06日 打卡day30
今天阅读——面试突击81:什么是跨域问题?如何解决?
跨域问题指的是不同站点之间,使用 ajax 无法相互调用的问题。跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。 但这个保护机制也带来了新的问题,它的问题是给不同站点之间的正常调用。
在 Spring Boot 中跨域问题有很多种解决方案,比如以下 5 个:

使用 @CrossOrigin 注解实现跨域;
通过配置文件实现跨域;
通过 CorsFilter 对象实现跨域;
通过 Response 对象实现跨域;
通过实现 ResponseBodyAdvice 实现跨域。

当然如果你愿意的话,还可以使用过滤器来实现跨域,但它的实现和第 5 种实现类似,所以本文就不赘述了。
展开
评论
#青训营笔记创作活动#
02月05日 打卡day29
今天阅读——Flowable 开篇,流程引擎扫盲
介绍了三个主流的流程引擎,
Activiti
Flowable
Camunda
然后介绍了流程绘制工具Flowable Eclipse Designer,步骤非常详细。
展开
评论
#青训营笔记创作活动#
02月04日 打卡day28
今天阅读——基于 AOP + Redis + 自定义注解 实现细粒度的接口IP访问限制 | 开源微服务项目
讲解了如何在微服务中优雅的实现一个公用的接口访问限制工具。
评论
#青训营笔记创作活动#
02月03日 打卡day27
今天阅读——好好的系统,为什么要分库分表?
单机数据库的存储能力、连接数是有限的,它自身就很容易会成为系统的瓶颈。当单表数据量在百万以里时,我们还可以通过添加从库、优化索引提升性能。
一旦数据量朝着千万以上趋势增长,再怎么优化数据库,很多操作性能仍下降严重。为了减少数据库的负担,提升数据库响应速度,缩短查询时间,这时候就需要进行分库分表。
展开
评论
#青训营笔记创作活动#
02月02日 打卡day26
今天阅读——聊一聊缓存和数据库不一致性问题的产生及主流解决方案以及扩展的思考
读多写少的数据适合放入缓存
缓存穿透是指用户在不断访问一个缓存和数据库中都没有的数据
Redis挂掉了,请求全部走数据库。
Redis 中大规模的热点key在同一时间失效,并且此时正处于高并发期间,导致流量全部打到数据库上,造成数据库极大的压力。我们通常将这样的事件称之为缓存击穿
展开
评论
#青训营笔记创作活动#
02月01日 打卡day25
今天学习——聊一聊作为高并发系统基石之一的缓存,会用很简单,用好才是技术活
从本地缓存到集中缓存再到多级缓存
缓存对于一个软件系统的重要价值。通过对缓存的合理、充分利用,可以大大的增强我们的系统承压性能、提升产品的用户体验。
展开
评论
#青训营笔记创作活动#
01月31日 打卡day24
高并发下秒杀商品,你必须知道的9个细节
秒杀活动下的技术细节真不少啊,但是针对这种场景的特点仔细分析,还是出现了很多解决方案,让人不得不感慨人的强大。之前我都是参与活动的用户,现在我要转变成设计活动的后台程序员了。
展开
评论
#青训营笔记创作活动#
1月30日 打卡day23
今天学习——为什么用公钥加密却不能用公钥解密?
因为大数取模运算是不可逆的,因此他人无法暴力解密。但是结合欧拉定理,我们可以选取出合适的p(公钥), q(私钥), N(用于取模的大数),让原本不可逆的运算在特定情况下,变得有那么点“可逆”的味道。数学原理决定了我们用公钥加密的数据,只有私钥能解密。反过来,用私钥加密的数据,也只有公钥能解密。
展开
评论
#青训营笔记创作活动# juejin.cn
01月29日 打卡day22
今天学习——刨根问底 Redis, 面试过程真好使
总结:

跳表是可以实现二分查找的有序链表
每个元素插入时随机生成它的 level
最底层包含所有的元素
如果一个元素出现在 level(x),那么它肯定出现在 x 以下的 level 中
每个索引节点包含两个指针,一个向下,一个向右
跳表查询、插入、删除的时间复杂度为 O(log n),与平衡二叉树接近


为什么不选择红黑树来实现

首先来分析下 Redis 的有序集合支持的操作:

插入元素
删除元素
查找元素
有序输出所有元素
查找区间内的所有元素

其中前 4 项红黑树都可以完成,且时间复杂度与跳表一致,但是最后一个红黑树的效率就没有跳表高了。在跳表中,要查找区间的元素,只要定位到两个区间端点在最低层级的位置,然后按顺序遍历元素就可以了,非常高效。
展开
评论
#青训营笔记创作活动#
1月28日 打卡day21
今天学习--本篇中就对MySQL的索引机制有了全面认知,从索引的由来,到索引概述、索引管理、索引分类、唯一/全文/联合/空间索引的创建与使用等内容,进行了全面概述,
聚簇索引、非聚簇索引、唯一索引、主键索引、联合索引、全文索引、单列索引、多列索引、复合索引、普通索引、二级索引、辅助索引、次级索引、有序索引、B+Tree索引、R-Tree索引、T-Tree索引、Hash索引、空间索引、前缀索引......
展开
评论
#青训营笔记创作活动#
1月27日 打卡day20
今天学习——(五)MySQL索引应用篇:建立索引的正确姿势与使用索引的最佳指南!
对数据库整体来说,索引带来的优势会大于劣势。不过也正由于索引存在弊端,因此索引不是越多越好,合理建立索引才是最佳选择。
回表是指一条SQL语句在MySQL内部,要经过两次查询过程才能获取到数据
①经常频繁用作查询条件的字段应酌情考虑为其创建索引。
②表的主外键或连表字段,必须建立索引,因为能很大程度提升连表查询的性能。
③建立索引的字段,一般值的区分性要足够高,这样才能提高索引的检索效率。
④建立索引的字段,值不应该过长,如果较长的字段要建立索引,可以选择前缀索引。
⑤建立联合索引,应当遵循最左前缀原则,将多个字段之间按优先级顺序组合。
⑥经常根据范围取值、排序、分组的字段应建立索引,因为索引有序,能加快排序时间。
⑦对于唯一索引,如果确认不会利用该字段排序,那可以将结构改为Hash结构。
⑧尽量使用联合索引代替单值索引,联合索引比多个单值索引查询效率要高。


❶值经常会增删改的字段,不合适建立索引,因为每次改变后需维护索引结构。
❷一个字段存在大量的重复值时,不适合建立索引,比如之前举例的性别字段。
❸索引不能参与计算,因此经常带函数查询的字段,并不适合建立索引。
❹一张表中的索引数量并不是越多越好,一般控制在3,最多不能超过5。
❺建立联合索引时,一定要考虑优先级,查询频率最高的字段应当放首位。
❻当表的数据较少,不应当建立索引,因为数据量不大时,维护索引反而开销更大。
❼索引的字段值无序时,不推荐建立索引,因为会造成页分裂,尤其是主键索引。
展开
评论
#青训营笔记创作活动#
1月26日 打卡day19
Bytebase确实是一款实用的数据库管理及变更工具,让我们在没有客户端的情况下也能方便地进行数据库管理,它的SQL审核功能可以避免开发人员对数据库的误操作。
评论
#青训营笔记创作活动#
1月25日 打卡day18
今天学习——SQL优化思路+经典案例分析
慢查询日志记录慢SQL
explain分析SQL的执行计划
profile 分析执行耗时
Optimizer Trace分析详情
确定问题并采用相应的措施
展开
评论
下一页
个人成就
文章被点赞 10
文章被阅读 4,799
掘力值 235
收藏集
2
关注标签
13
加入于