获得徽章 1
#青训营笔记创作活动#
2月16日 打卡day25
今日学习了
所谓的并发事务,本质上就是MySQL内部多条工作线程并行执行的情况,也正由于MySQL是多线程应用,所以需要具备完善的锁机制来避免线程不安全问题的问题产生,但熟悉多线程编程的小伙伴应该都清楚一点,对于多线程与锁而言,存在一个100%会出现的偶发问题,即死锁问题。
展开
评论
#青训营笔记创作活动#
2月15日 打卡day24
今日学习了
debug代码是一个常用而且很常见的技能,但是不是每个人都能很有效率的debug代码...
有一些idea隐藏的debug方式,虽然一些人不关注,但是有用并且能极大提升效率
文章主要介绍一些一些在实际项目中相对有用的可以提升debug能力的一些经验。最后如果说实在是有问题,但是又没办法进入调试模式,可以考虑arthas的trace和watch。
展开
评论
#青训营笔记创作活动#
2月13日 打卡day23
今日学习了
缓存实现的时候,必须要有一种机制,能够保证内存中的数据不会无限制增加 —— 也即数据淘汰机制。数据淘汰机制,是一个成熟的缓存体系所必备的基础能力。这里有个概念需要厘清,即数据淘汰策略与数据过期是两个不同的概念。
数据过期,是缓存系统的一个正常逻辑,是符合业务预期的一种数据删除机制。即设定了有效期的缓存数据,过期之后从缓存中移除。
数据淘汰,是缓存系统的一种“有损自保”的降级策略,是业务预期之外的一种数据删除手段。指的是所存储的数据没达到过期时间,但缓存空间满了,对于新的数据想要加入缓存中时,缓存模块需要执行的一种应对策略。
展开
评论
#青训营笔记创作活动#
2月12日 打卡day22
今日学习了
聚簇索引和非聚簇索引的根本区别:
聚簇索引中,表数据和索引数据是按照相同顺序存储的,非聚簇索引则不是。
聚簇索引在一张表中是唯一的,只能有一个,非聚簇索引则可以存在多个。
聚簇索引在逻辑+物理上都是连续的,非聚簇索引则仅是逻辑上的连续。
聚簇索引中找到了索引键就找到了行数据,但非聚簇索引还需要做一次回表查询。
InnoDB-非聚簇索引与MyISAM-非聚簇索引的区别:
InnoDB中的非聚簇索引是以聚簇索引的索引键,与具体的行数据建立关联关系的。
MyISAM中的非聚簇索引是以行数据的地址指针,与具体的行数据建立关联关系的。
一般来说,由于MyISAM引擎中的索引可以根据指针直接获取数据,不需要做二次回表查询,因此从整体查询效率来看,会比InnoDB要快上不少。
展开
评论
#青训营笔记创作活动#
2月11日 打卡day21
今日学习了
Mysql 的表数据是以页的形式存放的,页在磁盘中不一定是连续的。
页的空间是 16K, 并不是所有的空间都是用来存放数据的,会有一些固定的信息,如,页头,页尾,页码,校验码等等。
在 B+ 树中,叶子节点和非叶子节点的数据结构是一样的,区别在于,叶子节点存放的是实际的行数据,而非叶子节点存放的是主键和页号。
索引结构不会影响单表最大行数,2kw 也只是推荐值,超过了这个值可能会导致 B + 树层级更高,影响查询性能。
展开
评论
#青训营笔记创作活动#
2月10日 打卡day20
今日学习了
跨域问题的本质是浏览器为了保证用户的一种安全拦截机制,想要解决跨域问题,只需要告诉浏览器“我是自己人,不要拦我”就行。它的常见实现方式有 5 种:通过注解实现局部跨域、通过配置文件实现全局跨域、通过 CorsFilter 对象实现全局跨域、通过 Response 对象实现局部跨域,通过 ResponseBodyAdvice 实现全局跨域。
展开
评论
#青训营笔记创作活动#
2月9日 打卡day19
今日学习了
一个比较早的工作流是 jBPM,这是一个由 Java 实现的企业级流程引擎,是 JBoss 公司开发的产品之一。
jBPM 的创建者是 Tom Baeyens,这个大佬后来离开了 JBoss,并加入到 Alfresco,并推出了基于 jBPM4 的开源工作流系统 Activiti,而 jBPM 则在后续的代码中完全放弃了 jBPM4 的代码。从这个过程中也能看出来,jBPM 在发展过程中,由于意见相左,后来变成了两个 jBPM 和 Activiti。
展开
评论
#青训营笔记创作活动#
2月8日 打卡day18
今日学习了
为什么分库分表:单机数据库的存储能力、连接数是有限的,它自身就很容易会成为系统的瓶颈。当单表数据量在百万以里时,我们还可以通过添加从库、优化索引提升性能。
一旦数据量朝着千万以上趋势增长,再怎么优化数据库,很多操作性能仍下降严重。为了减少数据库的负担,提升数据库响应速度,缩短查询时间,这时候就需要进行分库分表。
展开
评论
#青训营笔记创作活动#
2月6日 打卡day17
今日学习了
对缓存的各个方面进行了一个简单的阐述与了解,也可以看出缓存对于一个软件系统的重要价值。通过对缓存的合理、充分利用,可以大大的增强我们的系统承压性能、提升产品的用户体验。
缓存作为高并发系统中的神兵利器被广泛使用,堪称高并发系统的基石之一。而缓存的内容还远远不止我们本篇文档中所介绍的这些、它是一个非常宏大的命题。
展开
评论
#青训营笔记创作活动#
2月5日 打卡day16
今日学习了
大数取模运算是不可逆的,因此他人无法暴力解密。但是结合欧拉定理,我们可以选取出合适的p(公钥), q(私钥), N(用于取模的大数),让原本不可逆的运算在特定情况下,变得有那么点“可逆”的味道。数学原理决定了我们用公钥加密的数据,只有私钥能解密。反过来,用私钥加密的数据,也只有公钥能解密。
HTTPS相当于HTTP+TLS,目前主流的是TLS1.2,基于TCP三次握手之后,再来TLS四次握手。
TLS四次握手的过程中涉及到两对私钥和公钥。分别是服务器本身的私钥和公钥,以及CA的私钥和公钥。
TLS四次握手背起来会挺难受的,建议关注三个随机数的流向,以此作为基础去理解,大概就能记下来了。
展开
评论
#青训营笔记创作活动#
2月4日 打卡day15
今日学习了
Redis的优缺点
优点:
1、完全基于内存操作,性能极高,读写速度快,Redis 能够支持超过 100KB/s 的读写速率
2、支持高并发,支持10万级别的并发读写
3、支持主从模式,支持读写分离与分布式
4、具有丰富的数据类型与丰富的特性(发布订阅模式)
5、支持持久化操作,不会丢失数据
缺点:
1、数据库容量受到物理内存的限制,不能实现海量数据的高性能读写
2、相比关系型数据库,不支持复杂逻辑查询,且存储结构相对简单
3、虽然提供持久化能力,但实际更多是一个 disk-backed 功能,与传统意义上的持久化有所区别
展开
评论
下一页
个人成就
文章被阅读 1,532
掘力值 158
收藏集
0
关注标签
5
加入于