不同业务场景,通常InnoDB适用于大多
原创 2023-06-06 17:56:53
96阅读
本文从二叉树说起,谈到了二叉树、平衡二叉树、红黑树以及最后的B+,一步步的告诉你为什么MySQL索引的底层数据结构会使用B+树,可以说看了这篇文章之后,关于数据库索引的实现原理基本就已经OK了,面试的重点如下:二叉树、平衡二叉树、红黑树这几种数据结构的特性以及他们的关联和区别,是如何一步步演进过来的,这几种树常见的适用场景;最常见的就是平衡二叉树和红黑树之间的对比了,红黑树可以看做是一种折中的平衡
原创 2023-08-08 14:13:53
86阅读
何谓自旋?它是为实现保护共享资源而提出一种机制。其实,自旋与互斥比较类
Oracle架构,讲述了Oracle RDBMS的底层实现原理,是Oracle DBA**调优和排错的基础理论。深入理解Oracle架构,能够让我们在Oracle的路上走的更远。本文主要是在对RDBMS的底层组件功能和实现原理有一定的了解的情况下,结合自身的工作经验提出了对Oracle调优和排错的思
转载 2019-08-09 20:09:00
177阅读
2评论
# 实现“redis 底层实现原理” ## 1. 流程图 ```mermaid classDiagram class 初入行小白 class 经验丰富的开发者 初入行小白 --|> 经验丰富的开发者 ``` ## 2. 教学步骤 | 步骤 | 操作 | | ------ | ------ | | 1 | 掌握redis的基本使用方法 | | 2 | 了解redis
原创 6月前
11阅读
1 偏向的意义无多线程竞争时,减少不必要的轻量级执行路径。大多数情况下,不仅不存在多线程竞争,而且总是由同一条线程去多次获得,为了让线程获得的性能代价更低而引入了偏向。偏向主要用来优化同一线程多次申请同一个的竞争,即当对象被当做同步并有一个线程抢到了时,则在Mark Word设置该线程的线程ID、是否偏向设置1、标志位设置01等信息,此时的Mark Word 存储的就是偏向状态信息。在:创建一个线程并在线程中执行循环监听的场景下或单线程操作一个线程安全集合时
原创 2022-03-14 11:30:18
311阅读
数据库中的原理
原创 2023-03-21 09:32:07
102阅读
Java中的公平和非公平: 公平是指多个线程按照申请的顺序来获取 非公平即打破这个顺序,后来的线程也可以提前获取。 在ReentrantLock中可以通过改变构造方法参数,变化。但是在synchronized,则默认是非公平,无法更改。 可重入和不可重入 可重入:同一个线程在持有的前提下,可以多次获取成功。 reentrantLock:通过重写
  NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。在现代的计算系统上每天网络上都会产生庞大的数据量。这些数据有很大一部分是由关系数据库管理系统(RDBMS)来处理。 1970年 E.F.Codd's提出的关系模型的论文 "A relational model of data for large shared data banks",这使得数据建模和应用程序编程更
弄懂mysql数据库的索引原理底层一、从二叉树到B+树二、mysql的存储引擎->聚集索引和非聚集索引三、mysql的索引分类->数据结构、物理存储、逻辑结构一、树:1、满二叉树 2、完全二叉树3、二叉搜索树:4、平衡二叉树:5、红黑树:TreeMap使用的数据结构6、B树、B+树 B树:2k-1个key,2k个孩子,最少t-1个key在大量数据进行存储的时候会存储到外部磁盘,通过对
数据库:首先引用一张其他博主的图:下面我就针对这图中的逐一进行一下解释:悲观:            数据库总是认为多个数据库并发操作会发生冲突,所以总是要求加锁操作。悲观主要表、行、页。乐观:           数据库总是认为多个数据库并发操作不会发
乐观:每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在提交更新的时候会判断一下在 此期间别人有没有去更新这个数据。悲观:每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个 数据就会阻止,直到这个被释放。数据库的乐观需要自己实现,在表里面添加一个 version 字段,每次修改成功值加 1,这样每次修改的时候先对比一下,自己拥有的 version
Hive 的查询功能是由 hdfs 和 mapreduce 结合起来实现的,对于大规模数据查询还是不建议在 hive 中,因为过大数据量会造成查询十分缓慢。 Hive 与 mysql 的关系:只是借用 mysql 来存储 hive 中的表的元数据信息,称为 metastore. 1)用户接口主要有三 ...
转载 2021-08-24 11:03:00
325阅读
2评论
synchronize存在着无、偏向、轻量级和重量级四种状态,会随着竞争的激烈逐渐升级。偏向: 顾名思义,就是偏向第一个获得该对象的的线程,当线程请求到对象后,将对象的偏向标志改为1。然后使用CAS操作将线程的ID记录在对象的Mark Word中。以后该线程可以直接进入同步块,进去以后标志计数加一。但是,一旦有第二条线程需要竞争,那么偏向模式立即结束,进入轻量级的状态。轻量级
Hive 的查询功能是由 HDFS 和 MapReduce 结合
原创 2022-08-13 23:59:11
202阅读
在java代码中使用synchronized可是使用在代码块和方法中,根据Synchronized用的位置可以有这些使用场景: 如图,synchronized可以用在方法上也可以使用在代码块中,其中方法是实例方法和静态方法分别的是该类的实例对象和该类的对象。而使用在代码块中也可以分为三种,具体的可以看上面的表格。这里的需要注意的是:如果的是类对象的话,尽管new多个实例对象,但他们仍然是属于同
前言文接上篇,本文将继续介绍 Synchronized,感兴趣的小伙伴继续跟博主一起讨论下。上一篇文章:「 代码性能优化 」作为一名Java程序员,你真的了解 synchronized 吗?(一)一、synchronized底层实现在探讨synchronized底层实现原理之前,我们先来了解下java对象在内存中的结构1. 对象的内存布局以64位虚拟机为例:从上面的这张图里面可以看出,对象
我们说一个OLTP数据库管理系统,从功能上大体可以划分成存储和计算两层。存储层负责数据的存储以及事务的并发与恢复;计算层则主要是SQL的编译与查询。下文尽可能用通俗的语言解释清楚数据库的几大主要模块。数据库系统综述1 存储1.1 数据组织我们说数据库主要是用于记录数据的,我们从逻辑和物理两个层面分别阐述数据库中的数据。逻辑数据:如下图,数据库中主要是存储关系表数据和字段索引数据。关系表数据就类似与
原创 2021-03-06 19:54:35
1184阅读
# Java实现数据库数据库操作时,为了防止数据出现并发访问问题,我们常常需要使用来保证数据的一致性和安全性。在Java中,我们可以通过数据库机制来实现数据的加锁和解锁操作。 ## 数据库介绍 数据库是一种用来控制并发访问的机制,它可以确保在同一时刻只有一个事务可以访问或修改数据数据库可以分为悲观和乐观两种类型,悲观是在事务开始时加锁,乐观是在事务结束时加锁。
原创 7月前
62阅读
悲观:悲观的觉得别人一定会修改我的数据。悲观有两种,读和写。1.读:也叫共享。共享数据对象上锁权,大家都可以上锁,我上了一把读,你也可以上,但是只能上共享。可以使自己和别人不能修改数据,只能读取。我开启事务select * from student    LOCK IN  SHARE MODE//把select出来的数据对象锁定update stude
  • 1
  • 2
  • 3
  • 4
  • 5