自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 Spring事务失效

在循环中处理事务问题上,我们使用声明式事务有以下选择:1.1.1 把@Transanal注解放在整个循环的方法上,这样整个循环都会被spring事务管理到,缺点是使用了长事务,会导致锁表问题,影响效率。1.1.2 将每一次循环抽出一个方法,把@Transanal注解加在这个方法上。这样spring只管理了本次循环的事务,解决了长事务问题,但是有事务失效的风险。

2024-07-10 14:59:28 265

原创 Mysql事务和事务的隔离级别

事务是数据库管理系统(DBMS)执行过程中的一个逻辑单位(不可再进行分割),由一个有限的数据库操作序列构成(多个DML语句,select语句不包含事务),要不全部成功,要不全部不成功。如:A 给B转钱,A 的账户-1000元, B 的账户就要+1000元,这两个update 语句必须作为一个整体来执行,不然A 账户少了1000元,B账户没有多1000元,这种情况是错误的。那么事务就可以保证A 、B 账户的变动要么全部一起发生,要么全部一起不发生。

2024-06-05 18:07:55 962

原创 MySQL索引优化与性能调优

通过慢查询日志获取到慢查询语句后,我们需要对慢查询语句进行分析。一条查询语句在经过MySQL查询优化器的各种基于成本和规则的优化会会后生成一个执行计划,这个执行计划展示了具体执行的查询方式,比如多表连接的顺序是什么,对于每个表采用什么访问方法来具体执行查询等等。EXPLAIN语句来帮助我们查看某个查询语句的具体执行计划,因此我们弄清楚执行计划的各个输出项代表的含义,从而可以有针对性的提升查询性能。通过使用EXPLAIN关键字。

2024-06-05 12:11:28 2060

原创 MySQL高性能索引创建

我们在定义表结构的时候要显式的指定列的类型,以整数类型为例,有tinyint、smallint、mediumint、int、bigint,它们占用的存储空间依次递增,我们这里所说的类型大小指的就是该类型表示的数据范围的大小。

2024-06-04 14:20:54 689

原创 MySQL索引

一个索引就是一个B+树,索引让我们的查询可以快速定位和扫描到我们需要的数据记录上,加快查询的速度。一个select查询语句在执行过程中一般最多能使用一个二级索引,即使在where条件中用了多个二级索引。

2024-06-04 11:38:27 594

原创 数据库字段数据类型的选择与优化

MySQL支持的数据类型非常多,选择正确的数据类型对于获得高性能至关重要。不管存储哪种类型的数据,下面几个简单的原则都有助于做出更好的选择。

2024-06-03 01:21:19 1578

原创 数据库的范式化设计与反范式化设计

范式来自英文Normal Form,简称NF。实际上你可以粗略将其理解为。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF),在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般来说,数据库只需满足第三范式(3NF)就行了。

2024-06-03 00:11:18 968

原创 给定两个字符串str1和str2,返回这两个字符串的最长公共子序列长度

【代码】给定两个字符串str1和str2,返回这两个字符串的最长公共子序列长度。

2024-05-31 18:31:12 212

原创 零拷贝与sendFile

零拷贝是指计算机执行IO操作时,CPU不需要将数据从一个存储区域复制到另一个存储区域,进而减少上下文切换以及CPU的拷贝时间。它是一种IO操作优化技术。Kafka的特性之一就是高吞吐率,原因之一就是因为底层使用ZeroCopy技术,直接将磁盘无需拷贝到用户空间,而是直接将数据通过内核空间传递输出,数据并没有抵达用户空间。

2024-05-29 16:51:33 1030

原创 Kafka数据同步

由于0.11版本之前Kafka的副本备份机依赖HW存数据不一致问题和丢失数据问题,因此在0.11版本引入了 Leader Epoch同步机制解决这个问题。其中Leader负责对应分区的读写、Follower负责同步分区的数据,0.11 版本之前Kafka使用highwatermarker(高水位)机制保证数据的同步,但是基于高水位的同步数据可能会导致数据的丢失,不一致以及乱序。Lead Epoch 如何解决HW的数据不一致与数据丢失。要了解kafka数据同步机制,首先要了解如下概念。

2024-05-29 14:52:46 791

原创 Kafka 高级特性

Kafka消费者默认对于未订阅的topic的offset的时候,也就是系统并没有存储该消费者的消费分区的记录信息,默认Kafka消费者的默认消费策略:latest消费者在消费数据的时候默认会定期自动提交偏移量,用户可以通过以下两个参数配置: enable.auto.commit = true 默认auto.commit.interval.ms = 5000 默认。

2024-05-29 10:59:27 1812

原创 spring的自动配置原理

2024-05-24 17:35:35 372

原创 SpringBoot国际化配置

2、在resources资源文件下创建一个i18n的目录,创建一个login.properties、login_zh_CN.properties、login_en_US.properties,idea会自动识别国际化操作,三个配置文件内容分别如下。1、在idea中设置统一的编码格式,file->settings->Editors->File Encoding,选择编码格式为utf-8。4、编写login.html页面。5、添加login的登录视图。3、配置国际化的资源路径。

2024-05-21 10:54:31 331

原创 三阶段提交(Three-Phase Commit,简称3PC)

2PC中只有协调者可以超时,参与者没有超时机制),参与者接受到请求后,参与者执行本地事务操作,并写入到本地的 Undo/Redo 日志,此时事务没有提交。(Undo 日志是记录修改的数据,用于数据回滚,Redo 日志是记录修改后的数据,用于提交事务后写入数据文件)将结果返回给协调者,并且记录自己的操作日志以备后续恢复。三阶段提交协议(3PC)主要是为了解决两阶段提交协议的阻塞问题,2pc存在的问题是当协作者崩溃时,参与者不能做出最后的选择。协调者接收到参与者发的响应,那么他将从预提交状态进入到提交状态。

2024-05-16 16:02:45 371

原创 两阶段提交(Two-Phase Commit,简称2PC)

缺点是协议的执行需要等待所有参与者的响应,如果其中一个参与者出现故障或者网络通信出现问题,整个事务操作会被阻塞,影响系统的性能和可用性。(Undo 日志是记录修改的数据,用于数据回滚,Redo 日志是记录修改后的数据,用于提交事务后写入数据文件)将结果返回给协调者,并且记录自己的操作日志以备后续恢复。如果所有参与者都准备好提交,则协调者发送提交请求给所有参与者,并等待参与者的确认。在分布式系统中,如果涉及到多个节点之间的事务操作,为了保证数据的一致性,通常需要使用分布式事务协议来协调节点之间的操作。

2024-05-16 15:35:13 303

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除