摘要:
为什么建议InnoDB表必须建主键?并且推荐使用整型的自增主键? 如果不由我们人工去创建主键,mysql也会帮我们去建立主键,没有必要把这么简单地工作交给Mysql。整型比较比UUID比较要快,而且更加节省空间。 设置自增有一个考虑就是在插入元素数据的时候由于需要维护一颗B+树,这颗树根据主键排序的 阅读全文
摘要:
间隙锁,锁的就是两个值之间的空隙。Mysql默认级别是repeatable-read,有办法解决幻读问题吗?间隙锁 在某些情况下可以解决幻读问题。 假设account表里数据如下: 那么间隙就有 id 为 (3,10),(10,20),(20,正无穷) 这三个区间, 在Session_1下面执行 u 阅读全文
摘要:
https://blog.csdn.net/xuri24/article/details/125665852 阅读全文
摘要:
Mysql 查询是否存在锁表有多种方式,这里只介绍一种最常用的。 1、查看正在进行中的事务SELECT * FROM information_schema.INNODB_TRX2、查看正在锁的事务SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;3、查看等待 阅读全文
摘要:
CopyOnWriteArrayList的底层原理是怎样的? 1. ⾸先CopyOnWriteArrayList内部也是⽤过数组来实现的,在向CopyOnWriteArrayList添加元素时,会复制⼀个新的数组,写操作在新数组上进⾏,读操作在原数组上进⾏2. 并且,写操作会加锁,防止出现并发写入丢 阅读全文
摘要:
TCP和UDP有什么区别? TCP为什么是三次握手,而不是两次? TCP Transfer Control Protocol 是一种面向连接的、可靠的、传输层通信协议。 特点: 好比是打电话: 面向连接的,点对点的通信,高可靠的,效率比较低,占用的系统资源比较多。UDP User Datagram 阅读全文
摘要:
单例模式 饿汉式懒汉式静态内部类枚举类序列化 工厂方法模式 应用场景:1. 当你不知道该使用对象的确切类型的时候;2. 当你希望为库或者框架提供扩展其内部组件的方法时;主要优点:1. 将具体产品和创建者解耦2. 符合单一职责原则3. 符合开闭原则 抽象工厂模式 提供一个创建一系列相关或互相依赖对象的 阅读全文
摘要:
线性表: 单链表 双向链表 循环链表 栈 队列 递归 字符串 数组 树 二叉树 哈夫曼树:又称为最优树,是一种带权路径长度最短的树 平很二叉树 B树 B-树 B+树:Mysql默认采用的就是B+树进行存储的。 红黑树:像HashMap和TreeMap底层都用到了红黑树。 图: 邻接矩阵 邻接表 十字 阅读全文
摘要:
ES集群有哪些类型的节点,以及节点对应的职责是什么? 主要有Master节点和DataNode节点。 Master节点主要负责: 管理索引(创建索引、删除索引)、分配分片 维护元数据 管理集群节点状态 不负责数据写入和查询,比较轻量级。 在Elasticsearch集群中,会有N个DataNode节 阅读全文
摘要:
RabbitMQ消息的可靠性传递怎么保证以及消费端如何保证消息不丢失? 在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ 为我们提供了两种方式用来控制消息的投递可靠性模式。 confirm 确认模式 return 退回模式 rabbitmq 整个 阅读全文
摘要:
@Configuration(proxyBeanMethods = false) 标记了@Configuration Spring底层会给配置创建cglib动态代理。 作用:就是防止每次调用本类的Bean方法而重新创建对象,Bean是默认单例的。 Spring Boot的Jar应用的大致启动流程是怎 阅读全文
摘要:
雪花算法的原理 第一位符号位固定为0,41位时间戳,10位workld,12位序列号,位数可以有不同实现优点: 每个毫秒值包含的ID值很多,不够可以变动位数来增加,性能佳 (依赖workld的实现)。.时间戳值在高位,中间是固定的机器码,自增的序列在低位,整个ID是趋势递增的。0能够根据业务场景数据 阅读全文
摘要:
主要有: BeanFactoryProcessor、子接口 BeanDefinitionRegistryPostProcessor、BeanPostProcessor、ApplicationListener、Aware接口、nitializingBean/DisposableBean、Factory 阅读全文
摘要:
参考: https://www.cnblogs.com/tiancai/p/14850426.html https://blog.csdn.net/zhang_didi/article/details/122699633 另外编程式事务可以用TransactionTemplate。 阅读全文
摘要:
异步监听代码实现: public class AsyncApplicationEventMulticaster extends AbstractApplicationEventMulticaster { private TaskExecutor taskExecutor = new SimpleAs 阅读全文
摘要:
主要就是要配置distributionManagement和Server的相关信息。 参考: https://www.freesion.com/article/4121822958/ https://www.bbsmax.com/A/amd0Y0Qkzg/ 阅读全文
摘要:
alter table `table_name` modify filed varchar(150) binary; 阅读全文
摘要:
实例化建BeanDefinition读取器: AnnotatedBeanDefinitionReader:其主要做了2件事情 1.注册内置BeanPostProcessor 2注册相关的BeanDefinition. Spring涉及的设计模式:简单工厂、工厂方法、单例模式、适配器模式、装饰器模式、 阅读全文
摘要:
首先,我觉得只要用到了缓存,是没有办法达到强一致性的,尤其是在高并发场景下面。 当我们对数据进行修改的时候,到底是先删缓存,还是先写数据库?1、如果先删缓存,再写数据库: 在高并发场景下,当第一个线程删除了缓存,还没有来得及写数据库,第二个线程来读取数据,会发现缓存中的数据为空,那就会去读数据库中的 阅读全文
摘要:
有这样一个业务场景,比如另外一个团队的人只想要我们这边sit库的读权限,来查看数据。 但是开发人员只有一个是数据库账号,也就是说对数据库读写权限都有的账号。 那开发人员怎么给到另外团队的人给到有只读权限的账号呢? 可以这么玩: lock table xxx read; 如果等另外一个团队的人用完了, 阅读全文