摘要:Redis在项目中除了用作session共享、缓存静态数据等用途外,还有一个比较常见的用途就是实现分布式锁,一般在java中,我们除了自己代码实现,还可以用Redisson来实现分布式锁,也是官方比较推荐的一种方案。实现分布式锁需要考虑以下几个问题: 1、分布式锁实际就是实现互斥 2、需要防止死锁,
阅读全文
摘要:Spring事务是如何进行管理的?基于这个问题,分别从以下几个方面来说明 1、数据库事务的特性ACID 2、由于事务的隔离级别会导致那些问题 3、Spring事务的处理方式 4、Spring事务的传播特性 5、Spring事务的隔离级别 1、数据库事务的ACID特性 A(Atomic):原子性、指事
阅读全文
摘要:数据库索引主要用于加快检索速度,MySQL的InnoDB引擎中,索引的存储数据结构使用了B+树,为何要使用B+树,而不是M叉树或者B树? 一、不使用M叉树,例如二叉树 如果使用类似二叉树的存储结构,因为数据库的数据量很大,会导致树的高度很高,检索速度相比于B+树性能低太多。 二、为何不使用B树 这个
阅读全文
摘要:MySQL InnoDB存储引擎时,索引类型可分为聚簇索引和非聚簇索引,有时候也通俗的称为主键索引和普通索引。 接下来讨论一下几个问题: 1、什么是聚簇索引和非聚簇索引 2、什么是回表查询 3、什么是索引覆盖以及如何实现实现 1、关于聚簇索引和非聚簇索引的特点 聚簇索引: a、一个表有且仅有一个聚簇
阅读全文