摘要: 一、锁概述 锁是计算机协调多个进程或线程并发访问某一资源的机制(避免争抢)。 在数据库中,除传统的计算资源(如 CPU、RAM、I/O 等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素 阅读全文
posted @ 2021-02-20 22:45 跑调大叔! 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 一、前言 索引是数据库优化最常用也是最重要的手段之一, 通过索引通常可以帮助用户解决大多数的MySQL的性能优化问题。 二、索引概述 MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。 在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结 阅读全文
posted @ 2021-02-20 21:49 跑调大叔! 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 一、前言 在任何一种数据库中,都有各种各样的日志,记录着数据库工作的方方面面,帮助数据库管理员追踪数据库曾经发生过的各种事件。 MySQL 也不例外,在 MySQL 中,有 4 种不同的日志,分别是错误日志、二进制日志(BINLOG 日志)、查询日志和慢查询日志,这些日志记录着数据库在不同方面的踪迹 阅读全文
posted @ 2021-02-20 21:21 跑调大叔! 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 一、复制概述 复制是指将主数据库的 DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。 MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主库,实现链状复制。 二、复制原理 MySQL 阅读全文
posted @ 2021-02-20 21:11 跑调大叔! 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 一、前言 MySQL从5.5.8开始,Innodb就是默认的存储引擎,Innodb最大的特点是:支持事务、支持行级锁。 既然支持事务,那么就会有处理并发事务带来的问题: 更新丢失、脏读、不可重复读、幻读。 相应的为了解决这四个问题,就产生了事务隔离级别: 读未提交(Read uncommitted) 阅读全文
posted @ 2021-02-20 21:08 跑调大叔! 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 一、前言 平时我们使用数据库,看到的通常都是一个整体。 select * from T where ID=10; 对于上述语句,我们看到的只是输入一条语句,返回一个结果,却没有关注这条语句在 MySQL 内部的执行过程。 所以本文把 MySQL 拆解一下,看看里面都有哪些“零件”,希望借由这个拆解过 阅读全文
posted @ 2021-02-20 21:02 跑调大叔! 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 一、概述 和大多数的数据库不同, MySQL中有一个存储引擎的概念, 针对不同的存储需求可以选择最优的存储引擎。 存储引擎就是存储数据,建立索引,更新查询数据等等技术的实现方式 。存储引擎是基于表的,而不是基于库的。所以存储引擎也可被称为表类型。 Oracle,SqlServer等数据库只有一种存储 阅读全文
posted @ 2021-02-20 21:00 跑调大叔! 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 一、SQL编写顺序 SELECT DISTINCT <select list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_b 阅读全文
posted @ 2021-02-20 20:55 跑调大叔! 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 一、什么是阻塞队列 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。 这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。 阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。 阅读全文
posted @ 2021-02-20 20:51 跑调大叔! 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 一、死锁案例 class HoldLockThread extends Thread{ private String lockA; private String lockB; public HoldLockThread(String lockA, String lockB){ this.lockA 阅读全文
posted @ 2021-02-20 20:49 跑调大叔! 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 一、CAS 是什么 CAS:compare and swap的缩写,中文翻译成比较并交换。 二、CAS的原理 CAS 算法的过程是这样:它包含 3 个参数CAS(V,E,N)。 V 表示要更新的变量(当前内存中的值),E 表示预期值(旧的),N 表示新值。当且仅当 V 值等于 E 值时,才会将 V 阅读全文
posted @ 2021-02-20 20:47 跑调大叔! 阅读(211) 评论(0) 推荐(1) 编辑
摘要: Volatile 是 Java虚拟机提供的轻量级的同步机制 阅读全文
posted @ 2021-02-20 20:35 跑调大叔! 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 线程池:指在初始化一个多线程应用程序过程中创建一个线程集合,然后在需要执行新的任务时重用这些线程而不是新建一个线程, 一旦任务已经完成了,线程回到池子中并等待下一次分配任务。 阅读全文
posted @ 2021-02-20 20:26 跑调大叔! 阅读(553) 评论(0) 推荐(1) 编辑