- 博客(14)
- 收藏
- 关注
原创 idea运程开发无法启动
java: Compilation failed: internal java compiler error-Djdk.lang.Process.launchMechanism=vfork
2025-03-24 17:10:03
118
原创 小表驱动大表
在 MySQL 中,Join Buffer(连接缓冲区)是一种用于优化多表连接操作的内存区域,当进行多表连接时,如果没有足够的索引可以使用,MySQL 可能需要进行大量的磁盘 I/O 操作来读取和比较数据。Join Buffer 的作用就是在内存中缓存一部分数据,减少磁盘 I/O 的次数,从而提高连接操作的性能。:会将驱动表的数据放到join buffer中,然后在批量与非驱动表进行匹配,如果join buffer不能一次性加载所有数据,就会分阶段进行匹配,会增加被驱动表的扫描次数,从而降低效率。
2024-11-03 22:11:15
400
原创 深分页
针对于这两条语句,第一步优化是为create_time添加一个二级索引,减少扫描的范围以及提升速度。在使用limit来进行分页查询时,随着数据量的增加,查询速度会越来越慢。1.先根据二级索引定位数据,然后获取到主键。2.根据主键到主键索引中进行回表,查询数据。
2024-11-03 20:45:13
290
原创 redo log 与 bin log 以及两阶段提交
当遇到宕机时,如果redo log 为prepare状态,然后binlog没有刷盘成功时宕机,就将redo log 回滚即可, 在redo log 和 bin log 都刷盘后,就直接提交事务即可(根据redo log 的XA事务id去binlog查看是否存在对应id的binlog来判断)1. 在redo log 刷盘成功后,mysql宕机,而binlog还灭有来的及写入,当重启后,会根据redo log 恢复,而binlog 里并没有对应记录,这时,从库的数据就会和主库不一致。
2024-03-14 22:46:40
549
1
原创 redis AOF持久化
那么这时就会触发写时复制,就是在对内存数据进行更改时,会真正的复制要修改的那份内存数据,然后子进程与父进程各有一份,不会影响到子进程的重写,但是重写结束后,新的AOF文件有没有新的命令记录?redis通过在执行重写期间,会创建一个重写缓存,会缓存在重写期间来的命令,然后重写结束后,将命令写入新的AOF文件中即可。2. 在接受子进程重写结束的通知后,会将缓存的新命令写入新的AOF文件也会阻塞主进程。然后主进程开启子进程去实现重写,将读取内存数据,然后生成命令,放在文件中。在重写期间什么时候会阻塞主进程?
2024-03-09 18:06:18
360
1
原创 redis 哨兵机制
哨兵一般会是一个集群,当有一个哨兵没有收到主节点的回应后,就会将主节点判断为主观下线,当判断为主观下线后,该哨兵就会向其他哨兵发起命令,其他哨兵收到这个命令后,就会根据自身和主节点的网络状况,做出赞成投票或者拒绝投票的响应,当赞成的票数达到quorum(一般设置为哨兵数量的二分之一加一) 后,就会认为主节点为主观下线。哨兵机制:它的作用是为了实现主从节点故障转移,它会监测主节点是否还存活,如果主节点挂了,他就会选举一个从节点切换为主节点,并且把新主节点的信息告诉从节点以及客户端。1. 拿到半数以上的票。
2024-03-07 15:13:02
279
原创 Redis 主从复制
1. 分摊主服务器压力,每一个链接的从服务器都需要全量复制,(并且都需要有一个replication buffer),在从服务器比较多的时候,会有可能阻塞主服务器,那么此时就可以让从服务器成为经历,从服务器又有从服务器,避免全部从服务器都连接到主服务器。redis的主从复制模式可以保证主从节点的数据一致性,并且主从服务器之间采用的是读写分离的方式。第三阶段是主服务器发送新的命令到给从服务器。至此就可以进行同步数据了(主从服务器之间通过一个TCP长连接传输数据)第二阶段是主服务器同步到从服务器。
2024-03-06 20:49:38
325
1
原创 Spring循环依赖
在Spring中存在三级缓存解决循环依赖问题一级缓存 SingletonObjects 存放的是实例化以及初始化后的完整的Bean二级缓存 earlySingletonObjects 存放的是半成品,只实例化还未初始化的Bean三级缓存 singletonFactories 存放的是生成某个Bean的工厂,用来创建Bean后Bean的代理对象二级缓存解决普通循环依赖问题但是如果A是要创建一个A的代理对象,就是说A这个类被增强了。
2024-03-05 18:40:39
155
原创 Bean的生命周期 简单理解
通过BeanDefinition来获取一个类的定义信息。(以流的方式读取XMl中的配置)2.调用类的构造方法,来实例化一个Bean。以上就是Bean的生命周期流程。
2024-03-05 15:56:45
146
原创 RabbitMq 保证消息的可靠性
RabbitMq中会有交换机 以及队列 那么需要保证消息的可靠性,得从生产者到交换机,以及交换机到队列,以及队列到消费者考虑。
2024-03-03 15:51:47
622
原创 拦截器 和shiro
在UserRleam中拿到登录对象,并取出数据库中的数据设置当前用户的权限 currentUser.getPerms());在controller中封装数据在token中,在自定义类releam的认证中可直接获得token 然后与数据库的数据进行对比。3 在方法中添加拦截器(注入controller中添加的拦截器bean,并在方法中使用),并设置拦截的访问路径,路经可以通。在config中设置权限,在UserRleam中授予用户权限。在方法里进行具体的拦截器配置。
2022-11-24 22:26:07
452
原创 io流
/当 fileOutputStream = new FileOutputStream(filepath,true);getName getAbsolutePath getParent length exists isFile(是否是文件)ctory(是否是目录)//fileOutputStream = new FileOutputStream(filepath);mkdir()创建以及目录,mkdirs()创建多级目录 delet()删除空目录或文件。在java编程中目录也被当做文件。
2022-11-17 21:40:02
118
原创 【无标题】linux
开关机 shutdownshutdown -h 计算机将在10分钟后关机shutdown -h 20:25 系统会在今天20:25关机shutdown -r now 系统立马重启shutdown -r +10 系统十分钟后重启最后总结一下,不管是重启系统还是关闭系统,首先要先运行sync命令,把内存中的数据写到磁盘中去系统目录结构:1:一切皆文件2:根目录/,所有的文件都挂载在这个节点下。
2022-11-11 11:46:21
193
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人