青云博客 记录、分享

MyISAM索引与InnoDB索引的区别?

MyISAM和InnoDB是MySQL中两种常见的存储引擎,它们在索引实现上存在以下区别: 存储方式:MyISAM使用非聚簇索引,索引文件和数据文件是分开的;而InnoDB使用聚簇索引,将索引和数据一起存储在同一个文件中。 锁机制:MyISAM采用表级锁定,意味着当对表进行写操作时,整个表都会被锁定

詹学伟 Published on 2024-04-23

UNION 与UNION ALL 的区别?

UNION和UNION ALL是在SQL中用于合并查询结果集的操作符,它们之间存在以下区别: UNION:UNION用于合并两个或多个查询结果集,并去除重复的行。它将多个查询的结果合并为一个结果集,并自动去除重复的行。在执行UNION操作时,数据库会进行额外的去重操作,这可能会带来一定的性能开销。

詹学伟 Published on 2024-04-23

分布式协议Gossip

Gossip Protocol也叫Epidemic Protocol(流行病协议),还有其他名称,如流言算法、疫情传播算法等。 该协议的发布最早是在1987年8月温哥华举行的第六届ACM分布式计算原理的学术会议上,该论文介绍了几种用于分发更新并推动副本实现一致性的随机算法。该算法非常简单,几乎不需要

詹学伟 Published on 2024-04-23

JVM 内存为什么要分新生代,老年代,元空间

JVM之所以将内存划分为新生代、老年代和元空间,是为了实现更有效的垃圾回收和提高Java应用程序的性能。这种内存分代的策略基于以下考虑: 对象生命周期不同: 大多数对象在被创建后不久就会变得不可达,因此它们的生命周期很短。

詹学伟 Published on 2024-04-23

MyBatis一二级缓存的区别?

首先,咱们说说一级缓存。在同一个会话里,MyBatis 会自动开启一级缓存。这个缓存就是为了优化查询操作的速度。一旦你执行了一个查询,MyBatis 会把结果先存起来,这样下次再查询相同的数据的时候,它就可以直接从缓存里拿,不用再去数据库查询了。只要会话不结束,这个缓存就一直有效,只在这一个会话里起

詹学伟 Published on 2024-04-23

count(1)、count(*) 与 count(列名) 的区别?

在SQL查询中,COUNT(1)、COUNT(*)和COUNT(列名)是用于计算行数的聚合函数,但它们在实际应用时有一些区别。 COUNT(1):这种写法中,1表示一个常量值,它会被用于计算查询结果集的行数。由于1是一个常量,在执行COUNT(1)时,数据库不会去访问或读取任何实际的数据,仅仅是对满

詹学伟 Published on 2024-04-23

说下ConcurrentHashMap和Hashtable的异同点

ConcurrentHashMap 和 Hashtable 都是用于在多线程环境中存储和操作键值对的数据结构,但它们在实现和性能方面存在一些重要的异同点: 相似点

詹学伟 Published on 2024-04-23

谈谈分词与倒排索引的原理

分词是自然语言处理中的一种预处理步骤,旨在将句子拆分为一个个独立的词或短语,以便于后续的分析和处理。在中文语境中,分词尤为重要,因为与英语等语言不同,中文的词语之间没有明显的分隔符,需要通过算法进行自动切分。 倒排索引是一种索引方法,常用于信息检索系统。它与正排索引相反,正排索引是根据文档的ID获取

詹学伟 Published on 2024-04-23

你是如何解决热Key问题的

热 Key 问题是指在缓存系统中,某些特定的缓存key受到高频访问,导致对这些热门数据的读取/写入操作集中在少数几个缓存节点上,使得这些节点的负载过高,而其他节点负载较轻甚至空闲。这会造成系统性能不均衡,可能导致部分请求响应变慢或服务不可用。 解决热 Key 问题有这些方案: 缓存预热:在系统启动或

詹学伟 Published on 2024-04-23

elasticsearch 索引数据多了怎么办,如何调优,部署

当Elasticsearch索引数据量过多时,可以采取以下措施进行优化和部署: 调整索引分片数量:根据数据量和集群规模,重新分配索引的分片数量。较小的索引分片可以提高查询性能,但过多的分片也会增加管理开销。因此,需要根据具体情况进行权衡。 调整副本数量:根据数据量和查询负载,适当调整索引的副本数量。

詹学伟 Published on 2024-04-23
Previous Next