摘要:
1. 如何将1千万个数据加到List中 ArraysList可以存下,但是效率低,可以使用LinkedList。 2. 两个1千万List如何找到,A中有,但B中没有的元素。 可以将List转成HashSet,使用HashSet的retainAll方法。retainAll作用是保留集合中与另一个集合 阅读全文
摘要:
问题:当出现某些特殊场景,一个事务A需要在未提交之前,一定要读取的是事务B提交的最新数据,该如何处理? 在MySQL中,事务隔离级别:读未提交、读提交、可重复读、串行化。 一、读未提交 读未提交会读到其它线程未提交的脏数据,虽然可以一直读到数据,但大部分都是脏数据,所以无法保证是最新有效的数据。 二 阅读全文
摘要:
JDK动态代理:是Java标准库提供的一种动态代理实现方式,基于接口生成代理对象。使用Proxy类和InvocationHandler接口来创建代理对象,被代理的类必须实现接口。 CGlib动态代理:使用CGLib库实现,通过生成目标类的子类来创建代理对象。不需要目标类实现接口,可以直接代理普通类。 阅读全文
摘要:
这是一篇学习后的心得分享,在正文之前,我们需要对一些索引的基本概念进行说明讲解。 1. 什么是索引? 索引(在 MySQL 中也叫“键key”)是存储引擎快速找到记录的一种数据结构,通俗来说类似书本的目录,这个比方虽然被用的最多但是也是最恰如其当的,在查询书本中的某个知识点不借助目录的情况下,往往都 阅读全文
摘要:
比较简单的是单列索引(b+tree)。遇到多条件查询时,不可避免会使用到多列索引。联合索引又叫复合索引。 b+tree结构如下: 每一个磁盘块在mysql中是一个页,页大小是固定的,mysql innodb的默认的页大小是16k,每个索引会分配在页上的数量是由字段的大小决定。当字段值的长度越长,每一 阅读全文