计算机基础
HHrxxx
这个作者很懒,什么都没留下…
展开
-
数据库
目录一、索引1. B+Tree 索引2. 哈希索引3. 全文索引4. 空间数据索引索引的利弊二、存储引擎InnoDBMyISAM比较三、切分水平切分垂直切分Sharding 策略四、复制主从复制复制的优点五、事务ACID六、并发一致性问题七、锁分类八、隔离级别级别九、多版本并发控制(MVCC)...转载 2019-08-07 09:50:34 · 270 阅读 · 0 评论 -
要了命的索引
1、聚集索引:叶子节点(数据页)存放整张表的行数据,一张表只能有一个聚集索引,按照每张表的主键构造一棵B+树,如果没有定义主键,InnoDB会试着使用唯一的非空索引来代替。如果没有这种索引,InnoDB就会定义隐藏的主键然后在上面进行聚集。2、非聚集索引(辅助索引):叶子节点存放的是键值以及指向数据页的偏移量,需要进行二次查询聚集索引和非聚集索引的区别:叶节点存放的信息不同;聚集索引只有一...原创 2019-07-31 18:17:21 · 123 阅读 · 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 · 171 阅读 · 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 · 158 阅读 · 0 评论 -
缓存穿透、缓存击穿、雪崩
缓存穿透是指 缓存 和 数据库 中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。解决方案:采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被 这个bitmap拦截掉,从而避免了对底层存储系统的查询压力 缓存空值,key-value对写为key-nul...转载 2019-09-14 23:38:40 · 190 阅读 · 0 评论