![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Database
whan8080
这个作者很懒,什么都没留下…
展开
-
数据库索引
聚簇索引 索引和数据存储在一块( 都存储在同一个B*tree 中)。 非聚簇索引 索引数据和存储数据是分离的。 二级索引/辅助索引(Secondary index) 二级索引存储的是记录的主键,而不是数据存储的地址。 以Mysql的InnoDB为例 主键是聚集索引 唯一索引、普通索引、前缀索引等都是二级索引(辅助索引) 主键索引(聚簇索引)查询效率比非主键索引查询效率更高...转载 2019-03-20 19:37:41 · 80 阅读 · 0 评论 -
乐观锁和悲观锁
乐观锁: 总是假设最好情况,认为修改数据过程中该数据不会被其他进程修改,不加锁。 在修改数据时判断该数据是否被更改,可通过版本号(version)和CAS(compare and swap)实现。 在Java中java.util.concurrent.atomic包下面的原子变量类就是使用了乐观锁的一种实现方式CAS实现的。 悲观锁 总是假设最坏情况,认为处理数据过程中该数据会被其...转载 2019-03-20 19:59:24 · 68 阅读 · 0 评论 -
MySQL Innodb MVCC(多版本并发控制)
原理: MVCC可以提供基于某个时间点的快照,使得对于事务看来,总是可以提供与事务开始时刻相一致的数据,而不管这个事务执行的时间有多长。所以在不同的事务看来,同一时刻看到的相同行的数据可能是不一样的,即一个行可能有多个版本。 MVCC具体实现 InnoDB的MVCC,是通过在每行记录后面保存两个隐藏的列来实现的,这两个列,其中一列存储行被创建的“时间”,另外一列存储行被删除的“时间”。这里的“...转载 2019-03-20 20:04:10 · 210 阅读 · 0 评论