- 博客(21)
- 收藏
- 关注
原创 Mysql的B树和B+树分别能存储多大的数据量
B-Tree: 4000 条, 千级B+Tree: 2000w条,千万级一般是3层,即Mysql通过3次IO操作就可以找到数据。
2023-09-06 10:36:02
1931
原创 Spring-Kafka如何实现批量消费消息并且不丢失数据
某个业务对象由多张表关联而成,要创建该对象需要想多张表插入数据,基于canal的监控就会有多次该对象的变更记录,而Kafka消费的时候也会多次处理同一个对象(虽然不同表,但是同一个对象的不同部分),原有的Kafka消费者是一次处理一条,这将造成重复对同一个对象的处理。其实只需要所有表插入完毕后,一次处理该对象即可。
2023-07-11 18:41:51
5310
1
原创 记录一次生产问题:当线程池打满,CallerRunsPolicy这个策略导致主调线程ThreadLocal变量丢失
自己实现接口,在内部直接调用任务的run方法。if(!// 调用执行之前先保留线程本地变量,因为run方法之后会清理线程本地变量 String oldUser = getUser();// 将执行任务之前的变量存回去 setUser(oldUser);} } } }
2023-02-21 23:12:24
1618
原创 记录一次解决jar包冲突asposewobfuscated.zz2S->asposewobfuscated.zz2R->asposewobfuscated.zz2S
due to a StackOverflowError. Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies. The class hierarchy being processed was [asposewobfuscated.zz2S->asposewobfuscated.zz2R->asposewobfuscated.zz2S]
2023-02-20 17:04:25
873
原创 Java指令重排测试类
场景二:单例模式的懒汉模式,DCL+volatile能保证不发生意外,但这里故意不加volatile,验证是否发生指令重排导致意外情况。场景一:两个线程分别对不同变量来回赋值,验证是否发生指令重排。总结了两个指令重排的场景,并编写代码实现了。
2023-02-19 21:53:47
239
1
原创 Mysql中的锁
也就是说,下一个键锁是索引记录锁加上索引记录之前的间隙上的间隙锁。列的表中的事务使用。在最简单的情况下,如果一个事务正在向表中插入值,那么任何其他事务都必须等待自己向该表进行的插入操作,以便第一个事务插入的行接收连续的主键值。的单独事务,在获得插入行的独占锁之前,每个事务都会使用插入意向锁锁定4和7之间的间隙,但不会阻塞,因为行不冲突。间隙锁是对索引记录之间间隙的锁,或对第一个索引记录之前或最后一个索引记录之后间隙的锁。允许冲突间隙锁的原因是,如果从索引中清除记录,则必须合并不同事务在记录上保留的间隙锁。
2022-11-06 21:23:37
131
原创 Unicode标准中定义的3个私有使用区域-一个基本区域+两个补充区域
Unicode规范中,私有使用区域一共3个,分别是1+2,1是指在BMP(基本多语言平面)中的U+E000到U+F8FFU+F0000到U+FFFFD,末尾的两个(U+FFFFE和U+FFFFF)除外;U+100000到U+10FFFD,末尾的两个(U+10FFFE和U+10FFFF)除外。平面编号平面名称范围编码点数量说明0BMP,基本多语言平面U+E000~U+F8FF建议:企业从前(U+E000)往后用,个人从后U+F8FF往前用15PUP-A,补充私人使用区域-AU+F0000~
2022-10-05 20:39:59
2168
原创 Unicode标准-编码格式-UTF-8-16-32
该文章描述了Unicode标准的字符编码格式,包括UTF-8、UTF-16、UTF-32,它们的各自的特征与区别。计算机系统中的实际实现表示特定大小的特定代码单位的整数,通常为8位(=字节)、16位或32位。在Unicode字符编码模型中,精确定义的编码形式指定如何将Unicode字符的每个整数(码点)表示为一个或多个代码单元的序列。Unicode标准为Unicode字符提供了三种不同的编码形式,分别使用8位、16位和32位单位。它们分别命名为UTF-8、UTF-16和UTF-32。
2022-10-05 10:19:20
5685
原创 Mysql的JSON函数 - 官网资料
12.18.1 JSON 函数参考12.18.2 创建 JSON 值的函数12.18.3 搜索 JSON 值的函数12.18.4 修改 JSON 值的函数12.18.5 返回 JSON 值属性的函数12.18.6 JSON 实用函数表 12.22 JSON 函数MySQL 5.7.22 及更高版本支持两个聚合 JSON 函数 和 . 有关这些的描述,请参见 第 12.20 节,“聚合函数”。同样从 MySQL 5.7.22 开始:有关这两个函数的完整描述,请参阅 第 12.18.6 节,“JSON 实用函数
2022-09-18 22:06:24
740
原创 一种基于Spring-Kafka消费者动态启停方式的多环境切换的实现
生产环境有3套,分别是正式生产环境(A)、备份生产环境(B)和预生产环境§。这三套环境的代码是完全相同的,但部署了3套进程(3“套”而不是3“个”是因为每个环境都可能部署多节点),但数据库和中间件却是共用的。所以这3套环境中共用了同一个Kafka集群。
2022-09-18 16:05:34
1535
原创 Mysql 中行与列的的数量有限制吗?
当然有了,Mysql中的行的限制是65535字节,Mysql中列的限制是4096,但InnoDB引擎的列数量进一步限制为1017列。
2022-08-02 22:30:19
1567
原创 Mysql 隐式类型转换 可能不走索引?
所以Mysql对待int类型的强制类型转换的时候,不会导致索引失效,那么varcher类型的强制类型转换会导致索引失效吗?字段本身是数字类型,那么对数字类型进行强制类型转换的查询会用到索引吗?在实际开发和运维过程中有没有发现,在对一张数据量很大的表执行查询的时候,明明。条件后面的字段有索引的啊,可是查询耗时却相当长,这是为什么呢?这两个字段建立了索引,下面我们就来对这两个索引进行测试和验证。类型字段的索引中如果发生了强制类型转换,则索引将失效。,说明Mysql还是想用索引的,但最终决定不使用索引。.....
2022-07-22 14:41:50
925
1
原创 Mysql的数据类型-官方文档-学习笔记-数值、日期时间、字符串、json
MySQL 支持所有标准 SQL 数字数据类型。这些类型包括精确数值数据类型(INTEGER、 SMALLINT、 DECIMAL 和 NUMERIC ),以及近似数值数据类型(FLOAT、 REAL 和 DOUBLE PRECISION)。关键字 INT 是 INTEGER 的同义词,关键字 DEC 和 FIXED 是 DECIMAL 的同义词,MySQL 将 DOUBLE 视为 DOUBLE PRECISION (非标准扩展)的同义词,MySQL 也将 REAL 视为 DOUBLE PRECI
2022-07-10 14:58:40
318
原创 Mysql的索引条件下推是怎么回事?有什么用?理论篇
索引条件下推 (ICP) 是针对 MySQL 使用索引从表中检索行的情况的优化。如果没有 ICP,存储引擎会遍历索引以定位基表中的行,并将它们返回给 MySQL 服务器,由 MySQL 服务器评估行的条件。启用 ICP 后,如果部分 条件可以仅使用索引中的列进行评估,则 MySQL 服务器会推送这部分条件下降到存储引擎。然后,存储引擎通过使用索引条目来评估推送的索引条件,并且只有在满足这一条件时才从表中读取行。ICP可以减少存储引擎必须访问基表的次数和MySQL服务器必须访问存储引擎的次数。索引条件下推优化
2022-07-07 21:57:35
463
原创 以“选择排序”谈写算法程序的哲学,时间空间复杂度的计算,以及如何验证算法的正确性
评价:最简单: 最符合人的自然思维最没用: 工程实践中基本不用时间复杂度: O(n^2)空间复杂度: O(1)本节内容:如何计算时间和空间复杂度如何对算法进行验证-随机数生成器、对数器写算法程序的哲学最符合人思维的一种算法每次遍历,找到最小的值,将其放在前面(交换),直到找完所有的数值。就排好顺序了,从小到大此处为什么是“交换”而不是“插入”,我个人的理解:在内存排列中,数组元素的“交换”移动的内存区域更小,而“插入”需要移动的内存区域更多由简单到复杂:先不考虑双层循环,只写最内层的循环,只
2022-07-03 22:48:45
316
原创 排序算法宋词记忆法
排序:将无序的数据排列成有序数据其中打 * 的是最重要的4种排序算法,需要记住它们的一般不用记最坏和最好时间复杂度,只需要记住平均时间复杂度即可时间复杂度函数对比图:附上绘制时间复杂度函数对比的python代码:...
2022-07-03 21:02:48
109
原创 Big O 标记法,大O标记法--衡量算法的标准
忽略常数项,数据量扩大n倍,时间扩大2n倍,则忽略2n中的常数2,计为O(n)忽略低次项,复杂度计算为n2+n,通常只计算最高次项的n2,而忽略低次项n,计为O(n^2),即n的平方举例:两个数据结构数组和链表,求获取最后一个元素的时间复杂度:.........
2022-07-03 20:54:35
307
原创 4种单例模式的写法,如何破解?如何防守?
从以上结果可以看出,4个单例模式中的前3个都被成功的创建出了两个对象,也就成功打破了单例模式的“单个对象”的保证,但第4个单例模式却失败了,异常错误提示:“无法反射式创建枚举对象”既然类加载器可以随意定义,那就将单例类将系统默认的那个类加载器做绑定,即在构造函数中判断类加载器是否与系统默认的类加载器相同,如果不同则抛出异常。《深入理解Java虚拟机》中说:对于任意一个类,都需要由加载的类加载器与这个类本身一同确定其在JVM中的唯一性,每个类加载器,都拥有一个独立的类名称空间。
2022-06-26 18:14:51
187
原创 spring-kafka-消费者暂停与恢复
原生Kafka可以很容易的控制消费者线程暂停与恢复,但是Spring-Kafka中我一直不太清楚如何暂停恢复,直到我在工作中遇到了适当的业务场景,于是我在百度上搜索了一下,再结合看源码,总结出了如下3个步骤:1: 自动注入KafkaListenerEndpointRegistry @Autowired private KafkaListenerEndpointRegistry kafkaListenerEndpointRegistry;2: 在KafkaListener上指定id和gr
2020-12-11 22:49:54
3292
原创 从源码中学习篇:Spring-Data-ES 同时连接多个ES集群。使JPA使用更顺畅
Spring-Data-ES 同时连接多个ES集群背景原有的创建原理核心类实际代码1、配置文件```application.properties```2、配置类```C1ElasticsearchProperties```3、创建连接的类```C1ElasticsearchAutoConfiguration```4、创建模版的类```C1ElasticsearchDataAutoConfiguration```5、集群2的配置类: ```C2ElasticsearchProperties```6、集群2创建
2020-11-28 10:27:51
1983
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人