- 博客(9)
- 收藏
- 关注
原创 (3)MySQL是如何通过【索引】找到一条【真实的数据】
之前稍微总结了一下mysql为什么用B+树的数据结构存储以及联合索引为何失效的原理,本文是索引三部曲的最后一文。总结一下,mysql底层是如何通过索引找到一条存储的数据的。这个总结,不可避免的就要对比一下mysql的两大存储引擎MyISAM和innodb了。对比MYISAM和INNODB1、事务方面InnoDB支持事务,MyISAM不支持事务,这是Mysql将默认的存储引擎从MyISAM变成InnoDB的重要原因之一,数据库不支持事务确实孤儿了。2、外键方面I支持外键,M不支持外键,所以对.
2021-02-05 15:17:48 776 1
原创 (2)MySQL索引失效的底层原理
在跟着周阳老师学习索引优化的时候接触了大量的索引失效的情况,但是只是知道结论。今天来分析一下其为何失效。首先在第一节的时候我们知道msql的索引数据是使用的B+树作为数据结构去存储,这种数据结构是使用二分查找去检索的,而对于二分查找我们知道这个需要数据大致有序或者完全就是有序的。基于这个原理我们来展开下面的一个分析,为什么索引会失效呢?一般索引失效是对复合索引说的,你单值索引一般也不怎么失效,上图就是一个复合索引在mysql内部的一个数据结构的存储图。这个复合索引由两个字段组成,就像下面这句sql.
2021-02-05 14:11:09 315
原创 (1)MYSQL索引之MySQL索引数据结构为什么使用B+树
本次应该算是一个小系列,分为三节。描述一下Mysql的索引底层的原理的一些知识,,第一节主要分析总结一下对于MySQL索引数据结构为什么使用B+树这种数据结构呢?对于这个问题,我们着重讨论这么几种数据结构,hash存储,二叉平衡树存储,B树存储,B+树存储,为什么Mysql最终在这些数据结构终选择了B+树这种数据结构呢?我们用https://www.cs.usfca.edu/~galles/visualization/这个网站来构建数据结构图。1、hash存储上图是一个长度未11的哈希表,每次在.
2021-02-05 11:24:04 209
原创 Spring的IOC的思想
在福建出差,顺手学了一下IOC的思想,就来总结一下IOC的理论上的一个演变以及其所起到的作用。1、IOC出现之前的模式我们就简单的做一个dao service 以及客户端的调用演示。最开始我们的需求就是一个获取用户数据,使用的是默认的获取。dao的接口:UserDaopublic interface UserDao { public void getUser();}dao的实现类:UserDaoImplpublic class UserDaoImpl implements .
2021-01-10 23:57:02 463
原创 JUC知识的学习
今天正式开始JUC得学习,对于本次第一次接触JUC是使用得周阳老师得课程学习得,纸上得来终觉浅,绝知此事要躬行。https://www.bilibili.com/video/BV1vE411D7KE?from=search&seid=8977535818223646090JUC1、回顾1、明确什么是进程,线程,并行,并发 对我来说这个其实已经背烂了,记录一下最近看到的一个例子帮助理解,你打开一个qq.exe,这就是一个进程,但是qq打开后你能发消息,能看空间,同时上面还飘着天气信息.
2020-12-27 15:14:21 263
原创 设计模式之静态代理模式
静态代理模式(设计模式)举个例子:以结婚为例,现在结婚都要找婚庆公司去处理,这其实就是一个代理模式的使用。你:真实结婚角色婚庆公司:代理你,帮你处理结婚的事情结婚:实现结婚接口即可代码实现:package com.lwq.staticProxy;/** * 静态代理模式总结: * 1、真实对象和代理对象都要事先同一个接口 * 2、代理对象要代理真实角色 * * 静态代理模式优点(为什么要使用): * 1、代理对象可以做很多真实对象做不了的事情 * 2、真实对象就可以做自己
2020-10-21 00:23:11 109
原创 多线程基础知识
多线程基础1、多线程多线程对应的一个概念叫多任务,就是在同时的时候执行了多个任务。现实中很多这样的例子,看起来是多个任务在同时都在做,但是其实本质上我们的大脑在同一时间依旧是只做了一件事。多条执行路径,主线程和主线程同时进行。程序:程序是指令和数据的有序集合,其实就是我们编写的源代码,其本身没有任何运行的含义,是一个静态的概念。进程:进程是执行程序的一次执行过程,它是一个动态的概念,是系统资源分配的单位。线程:一个进程中通常可以包含若干个线程,哪怕你啥也不干,进程里也有一个主线程在。当然一个进程
2020-10-21 00:21:13 181
原创 布隆过滤器的原理学习
1、什么是布隆过滤器1、布隆过滤器简介 布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。(摘自百度百科) 这是百度百科对于布隆过滤器的一个解释,在开了天眼分析过之后,我来通俗化一下这个解释。 实际上布隆过滤器由两部分构成: 1、 一个二进制向量,(可以把它理解成一个数组,里面存放的是1,0,0,1,1......这样的二进制数)。默认存储的是0。主要用于判断一个元素是否在一个集合
2020-10-12 23:22:49 723
翻译 MySQL入门
这只是mysql的入门。里面的很多东西需要去深入学习,这里可以认为是一个总纲,应付面试的,至于职业和学习,还需努把力把里面的东西吃透,还有之外的扩展。1、学习数据库为什么学习数据库1、岗位技能需求2、现在的世界,得数据者得天下3、存储数据的方法4、程序,网站中,大量数据如何长久保存?5、数据库是几乎软件体系中最核心的一个存在。什么是数据库数据库 ( DataBase , 简称DB )概念 : 长期存放在计算机内,有组织,可共享的大量数据的集合,是一个数据 “仓库”作用 : 保存
2020-10-09 18:16:53 931
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人