摘要: 思考: “为什么在使用 Mybatis 的时候,只需定义一个接口,不用写实现类就能使用XML中或者注解上配置好的SQL语句,就能完成对数据库 CRUD 的操作呢?” 这是因为用到了接口代理类,把每一个数据库操作的DAO接口都用操作数据库的代理类实现,并注册到Spring容器让用户去使用。从代码层面来 阅读全文
posted @ 2023-03-01 09:59 小兵要进步 阅读(14) 评论(0) 推荐(0) 编辑
摘要: (一)概念介绍: Sentinel(哨兵)是Redis的高可用性解决方案,主要是通过一个或多个Sentinel实例组成的Sentinel系统对任意多个主服务器以及这些主服务器的所有从服务器进行监视,当某个主服务器下线后,Sentinel系统自动将该主服务器下的某个从服务器升级为新的主服务器,然后由新 阅读全文
posted @ 2023-02-01 15:03 小兵要进步 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2023-02-01 14:46 小兵要进步 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 1 进程与线程:进程指正在运行的程序,进程拥有一个完整的、私有的基本运行资源集合。它有自己的内存空间。为了便于进程之间的通信,大多数操作系统都都支持进程间通信(IPC). IPC通信包括管道、消息队列、信号量、共享存储、socket、streams.其中socket与streams支持在不同主机上的 阅读全文
posted @ 2023-01-16 11:05 小兵要进步 阅读(39) 评论(0) 推荐(0) 编辑
摘要: (一)背景知识: 1 binlog binlog 我们中文一般称作归档日志, 是 MySQL Server 层的日志,而不是存储引擎自带的日志,它记录了所有的 DDL 和 DML(不包含数据查询语句)语句,而且是以事件形式记录,还包含语句所执行的消耗的时间等,需要注意的是: binlog 是一种逻辑 阅读全文
posted @ 2022-12-16 20:23 小兵要进步 阅读(928) 评论(0) 推荐(0) 编辑
摘要: 分库分表 一、为什么要分库分表 关系型数据库以MySQL为例,单机的存储能力、连接数是有限的,它自身就很容易会成为系统的瓶颈。当单表数据量在百万以里时,我们还可以通过添加从库、优化索引提升性能。一旦数据量朝着千万以上趋势增长,再怎么优化数据库,很多操作性能仍下降严重。为了减少数据库的负担,提升数据库 阅读全文
posted @ 2022-12-16 20:22 小兵要进步 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 一、锁的分类1、范围:全局锁、表级锁、行级锁2、功能分类:共享锁、排它锁 二、数据库的全局锁 加锁:mysql> flush tables with read lock; 释放锁:mysql> unlock tables; 三、MySQL的表级锁(都是Server层实现的) 1、表级的共享锁:loc 阅读全文
posted @ 2022-11-26 14:38 小兵要进步 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 索引数据结构的选择:Hash表、二叉树、平衡二叉树、(红黑树近似于平衡二叉树)、B树、B+树1)Hash表:Java的HashMap、TreeMap就是Hash表结构,以键值对存储,时间复杂度是O(1),但是不支持范围的快速查询,范围查询时得需要全表扫描。 2)二叉查找树:二叉树的特点是每个节点最多 阅读全文
posted @ 2022-11-26 14:23 小兵要进步 阅读(45) 评论(0) 推荐(0) 编辑
摘要: mvcc介绍 MVCC是数据库提供并发访问控制的一种技术。其核心理念是数据快照,不同的事务访问不同版本的数据快照,从而实现不同的事务隔离级别。虽然是说具有多个版本的数据快照,但这并不意味着数据库必须拷贝数据,保存多份数据文件,这样会浪费大量的存储空间。mysql的InnoDB通过事务的undo日志巧 阅读全文
posted @ 2022-11-06 20:51 小兵要进步 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 系统初始化器介绍: 类名:ApplicationContextInitializer ; 介绍:spring容器刷新之前执行的一个回调函数; 作用:向springBoot容器注册属性; 也可以自定义初始化器来修改env, springcloud获取远程配置就是采用这个方式。使用方式:继承接口自定义实 阅读全文
posted @ 2022-10-11 21:50 小兵要进步 阅读(328) 评论(0) 推荐(0) 编辑