2020年12月17日
摘要: CAP 理论 C:Consistency,一致性。表示无论什么时刻的请求返回得到的数据都是数据库中的最新值。 A:Availability,可用性。指的是系统能保证正常执行请求,不会瘫痪。 P:Partition tolerance,分区容错性。指的是如果某一个分区发生异常瘫痪,仍然可以对前来的请求 阅读全文
posted @ 2020-12-17 16:05 萌新J 阅读(156) 评论(0) 推荐(0) 编辑
  2020年12月10日
摘要: Tomcat 学习笔记。本文相关配置均为 tomcat8 下,其他版本可能略有不同。如有错误请多包涵。 架构 首先,看一下整个架构图 接下来简单解释一下。 Server:服务器。Tomcat 就是一个 Server 服务器。 Service:在服务器中可以有多个 Service,只不过在我们常用的这 阅读全文
posted @ 2020-12-10 17:15 萌新J 阅读(897) 评论(0) 推荐(4) 编辑
  2020年12月3日
摘要: 写操作执行过程 如果这条sql是写操作(insert、update、delete),那么大致的过程如下,其中引擎层是属于 InnoDB 存储引擎的,因为InnoDB 是默认的存储引擎,也是主流的,所以这里只说明 InnoDB 的引擎层过程。由于写操作较查询操作更为复杂,所以先看一下写操作的执行图。方 阅读全文
posted @ 2020-12-03 20:55 萌新J 阅读(13121) 评论(20) 推荐(21) 编辑
  2020年12月1日
摘要: 本文推荐搭配 一条 sql 的执行过程详解 查看。主要说明 InnoDB Buffer Pool 的内部执行原理,在使用索引时就加载对应的数据页到缓冲池中操作,如果没有用到索引会进行全表扫描,将所有数据都加载到缓冲池中查找、操作,如果数据量大会分批依次传入 Buffer Pool 进行查询。也就是说 阅读全文
posted @ 2020-12-01 22:47 萌新J 阅读(2404) 评论(0) 推荐(0) 编辑
  2020年11月30日
摘要: 本文主要总结 MySQL 事务几种隔离级别的实现和其中锁的使用情况。因为 Mysql 几种存储引擎中 InnoDB 使用的最多,同时也支持事务和锁,所以这篇主要说得是 InnoDB 引擎下的锁机制与事务。 在开始前先简单回顾事务几种隔离级别以及带来的问题。 四种隔离级别:读未提交、读已提交、可重复读 阅读全文
posted @ 2020-11-30 20:32 萌新J 阅读(4606) 评论(0) 推荐(4) 编辑
  2020年11月26日
摘要: 定义 一句话总结,索引是一个排好序的用于快速查找的数据结构。这句话说明了索引的三个特点,第一个是有序的,已经将索引列数据排好序了;第二个是快速查找,这就意味着使用索引可以快速定位到符合条件的数据;第三个是一个数据结构。我们平时使用 SQL 语句查询数据时,比如执行 select * from stu 阅读全文
posted @ 2020-11-26 10:40 萌新J 阅读(706) 评论(1) 推荐(2) 编辑
  2020年11月22日
摘要: 1、wait-notify 1.0 就存在,最初始的实现方式。 wait()、notify()、notifyAll() 是 Object 类中的方法,所以使用范围是最广的,所有对象都可以使用这个方式再搭配 synchronized 关键字实现等待-唤醒模型。 缺点:1、nofity() 只能将调用当 阅读全文
posted @ 2020-11-22 17:21 萌新J 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 如果我们想要当前线程暂停2s,常用的方法是下面这种 try { Thread.sleep(2*1000); }catch(Exception e) {e.printStackTrace();} 这种方式是以毫秒为单位进行计算的,在需要的时间比较长时就需要进行计算,像上面这种乘法,如果比较复杂的话sl 阅读全文
posted @ 2020-11-22 16:23 萌新J 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 引入 为什么使用线程池? 在连接数少的情况下,对于需要线程的地方我们只需要直接新建线程来处理就可以了,但是在并发量高的场景下,频繁的线程创建、销毁是非常消耗资源的,所以针对于这样的场景可以使用线程池,让一开始就创建好线程,在需要新连接进来需要线程时就从线程池中拿一条执行,完成后再将线程放回线程池,等 阅读全文
posted @ 2020-11-22 15:56 萌新J 阅读(372) 评论(0) 推荐(0) 编辑
  2020年11月21日
摘要: 在并发编程中有各种各样的锁,有的锁对象一个就身兼多种锁身份,所以初学者常常对这些锁造成混淆,所以这里来总结一下这些锁的特点和实现。 乐观锁、悲观锁 悲观锁 悲观锁是最常见的锁,我们常说的加锁指的也就是悲观锁。顾名思义,每次修改都抱着一种 "悲观" 的态度,每次修改前都会认为有人会和他一样执行同一段代 阅读全文
posted @ 2020-11-21 15:16 萌新J 阅读(449) 评论(0) 推荐(0) 编辑