![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机基础
HHrxxx
这个作者很懒,什么都没留下…
展开
-
数据库
目录 一、索引 1. B+Tree 索引 2. 哈希索引 3. 全文索引 4. 空间数据索引 索引的利弊 二、存储引擎 InnoDB MyISAM 比较 三、切分 水平切分 垂直切分 Sharding 策略 四、复制 主从复制 复制的优点 五、事务 ACID 六、并发一致性问题 七、锁 分类 八、隔离级别 级别 九、多版本并发控制(MVCC) ...转载 2019-08-07 09:50:34 · 261 阅读 · 0 评论 -
要了命的索引
1、聚集索引:叶子节点(数据页)存放整张表的行数据,一张表只能有一个聚集索引,按照每张表的主键构造一棵B+树,如果没有定义主键,InnoDB会试着使用唯一的非空索引来代替。如果没有这种索引,InnoDB就会定义隐藏的主键然后在上面进行聚集。 2、非聚集索引(辅助索引):叶子节点存放的是键值以及指向数据页的偏移量,需要进行二次查询 聚集索引和非聚集索引的区别:叶节点存放的信息不同;聚集索引只有一...原创 2019-07-31 18:17:21 · 113 阅读 · 0 评论 -
LRU实现
用双端链表实现,将每次最新插入或者最新访问的节点移动到链表的尾部。 当容量满的时候,直接移除首节点就可以了。同时要注意一些边界情况-----链表只有一个节点。 import java.util.HashMap; public class LRU { public static class Node<K, V> { private K key; private V v...原创 2019-08-07 09:46:22 · 160 阅读 · 0 评论 -
原子类AtomicInteger
public class AtomicInteger extends Number implements java.io.Serializable { private static final long serialVersionUID = 6214790243416807050L; private static final Unsafe unsafe = Unsafe...原创 2019-09-14 00:13:46 · 149 阅读 · 0 评论 -
缓存穿透、缓存击穿、雪崩
缓存穿透是指 缓存 和 数据库 中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 解决方案: 采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被 这个bitmap拦截掉,从而避免了对底层存储系统的查询压力 缓存空值,key-value对写为key-nul...转载 2019-09-14 23:38:40 · 179 阅读 · 0 评论