数据库(2)

目录

6.buffer pool,redo log buffer和undo logo,redo logo,bin log概念以及关系?

7.从准备更新一条数据到事务的提交的流程描述?

8.能说下myisam和innodb的区别吗?

9.说下MySQL的索引有哪些吧?

10.什么是B+树?为什么B+树成为主要对的SQL数据库的索引实现?

6.buffer pool,redo log buffer和undo logo,redo logo,bin log概念以及关系?

        buffer pool是MySQL的一个非常重要的组件,因为针对数据库的增删改操作都是在buffer pool中完成的。

        undo log记录的是数据操作前的样子

        redo log记录的是数据被操作后的样子(redo log是innodb存储引擎特有)。

        bin log记录的是整个操作记录(这个对于主从复制具有非常重要的意义)。

7.从准备更新一条数据到事务的提交的流程描述?

首先执行器根据MySQL的执行计划来查询数据,先是从缓存池中查询数据,如果没有就会去数据库中查询,如果查询到了就将其放到缓存池中。

在数据被缓存到缓存池的同时,会写入undo log日志文件。

更新的动作是在bufferpool中完成的,同时会将更新后的数据添加到redo log buffer中。

完成以后就可以提交事务,在提交的同时会做以下三件事:

将redo log buffer中的数据刷入到redo log文件中,

将本次操作记录写入到bin log文件中,

将bin log文件名字和更新内容在bin log中的位置记录到redo log中,同时在redo log最后添加commit标记。

8.能说下myisam和innodb的区别吗?

myisam引擎是5.1版本之前的默认引擎,支持全文检索、压缩、空间函数等,但是不支持事务和行级锁,所以一般用于有大量查询少量插入的场景来使用,而且myisam不支持外键,并且索引和数据是分开存储的。

innodb是基于B+tree索引建立的,和myisam相反它支持事务、外键,并且通过MVCC来支持高并发,索引和数据存放在一起。

9.说下MySQL的索引有哪些吧?

索引在什么层面?

首先,索引是在存储引擎层实现的,而不是在服务层实现的,所以不同存储引擎具有不同的索引类型和实现。

有哪些?

B+tree索引

是大多数MySQL存储引擎的默认索引类型。

哈希索引

哈希索引能以o(1)时间进行查找,但是失去了有序性;

Innodb存储引擎 有一个特殊的功能叫"自适应哈希索引",当某个索引值被使用的非常频繁时,会在B+tree索引之上再创建一个哈希索引,这样就让B+tree索引具有哈希索引的一些优点,比如快速的哈希查找。

全文索引

myisam存储引擎支持全文索引,用于查找文本中的关键词,而不是直接比较是否相等。查找条件使用match against,而不是普通的where。

全文索引一般使用倒排索引实现,它记录着关键词到其所在文档的映射。

Innodb存储索引在MySQL 5.6.4版本也开始支持全文索引。

空间数据索引

myisam存储索引支持空间数据索引,可以用于地理数据存储。空间数据索引会从所有维度来索引数据,可以有效地使用任意维度来进行组合查询。

10.什么是B+树?为什么B+树成为主要对的SQL数据库的索引实现?

什么是B+树?

B+树是基于B tree和叶子节点顺序访问指针进行实现,它具有b tree的平衡性,并且通过顺序访问指针来提高区间查询的性能。在B+树中,一个节点中的key从左到右非递减排列,如果某个指针的左右相邻key分别是keyi和keyi+1,且不为null,则该指针指向节点的所有key大于等于keyi且小于等于keyi+1。

为什么是B+tree?

为了减少磁盘读取次数,决定了树的高度不能高,所以鼻血是先b-tree;

以页为单位读取使得一次I/O就能完全载入一个节点,且相邻的节点也能够被预先载入;所以数据放在叶子节点,本质上是一个page页;

为了支持范围查询以及关联关系,页中数据需要有序,且页的尾部节点指向下个页的头部。

B+树索引可以分为聚簇索引和非聚簇索引?

        1.主索引就是聚簇索引(也称为聚集索引,clusteres index);

        2.辅助索引(有时也称为非聚簇索引或者二级索引,secondary index,non-cluster index)。

如上图,主键索引的叶子节点保存的是真正的数据。而辅助索引叶子节点的数据区保存的是主键索引关键字的值。

假如要查询name=C的数据,其搜索过程如下:1)现在辅助索引中通过C查询最后找到主键id=9;

2)在主键索引中搜索id=9的数据,最终在主键索引的叶子节点中获取到真正的数据。所以通过辅助索引进行检索,需要检索两次索引。

之所以这样设计,一个原因就是:如果和myisam一样在主键索引和辅助索引的叶子节点中都存放数据行索引指针,一旦数据发生迁移,则需要去重新组织维护所有的索引。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/308285.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言-详解内存函数

文章目录 1.memcpy使用和模拟实现1.1 memcpy函数的使用规则1.2 memcpy函数的使用1.2 模拟实现memcpy函数 2.memmove 函数的使用和模拟实现2.1 memmove 函数使用规则2.2 memmove函数的使用2.3 模拟实现memmove函数2.3.1 从后往前移2.3.2 从前往后移 2.4 算法实现2.4.1 从前往后移…

使用docker制作Android镜像(实操可用)

一、安装包准备 1、准备jdk 下载地址:Java Downloads | Oracle 注意版本!!!!!! 参考下面的 对照表,不然后面构建镜像报错,就是版本不对。 我就是因为下载的jdk17&…

边缘计算平台原理、关键功能以及技术优势

1、什么是边缘计算及其工作原理? 边缘计算是一种分布式计算模型,它将数据处理和存储靠近数据源头和最终用户的边缘设备上,从而减少了数据传输和延迟。边缘计算旨在解决云计算模型所面临的问题,例如延迟高、带宽瓶颈和安全性等问题…

虚幻引擎架构自动化及蓝图编辑器高级开发进修班

课程名称:虚幻引擎架构自动化及蓝图编辑器高级开发进修班 课程介绍 大家好 我们即将推出一套课程 自动化系统开发。 自动化技术在项目开发的前中后期都大量运用。如何您是一家游戏公司,做的是网络游戏,是不是经常会遇到程序员打包加部署需…

Energia学习案例

案例一:编写程序,实现每次按下按键,红色LED灯改变状态(初始点亮),在窗口监视窗中显示按击次数。[要求用计时器实现按键消抖] #include"Timer.h" //包含计时器头文件volatile int stateHIGH; //灯…

防止邮箱发信泄露服务器IP教程

使用QQ邮箱,网易邮箱,189邮箱,新浪邮箱,139邮箱可能会泄露自己的服务器IP。 泄露原理:服务器通过请求登录SMTP邮箱服务器接口,对指定的收件人发送信息。 建议大家使用商业版的邮箱,比如阿里云邮箱发信等 防止邮件发信漏源主要关注的是确保邮件…

蓝桥杯练习系统(算法训练)ALGO-954 逗志芃的暴走

资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 逗志芃是有妹子的现充,但是有时候妹子就是烦恼。因为逗志芃太逗了,所以这段时间妹子对逗志芃发动了…

【Vue + keep-alive】路由缓存

一. 需求 列表页,n 条数据项可打开 n 个标签页,同时1条数据项的查看和编辑共用一个标签页。如下所示: 参考 // 主页面 // 解决因 路由缓存,导致 编辑后跳转到该页面 不能实时更新数据 onActivated(() > {getList() })二. 实现…

JAVA 4

这次我学习了第四次Java课程 Math #include<math.h> 数学运算 Math.main 随机数 double aMath.random(); System.out.println(a);对小数处理 double a 3.6415; System.out.println("Math.floor: " Math.floor(a));//向下最近的整数 System.out.println(&…

wpf下如何实现超低延迟的RTMP或RTSP播放

技术背景 我们在做Windows平台RTMP和RTSP播放模块对接的时候&#xff0c;有开发者需要在wpf下调用&#xff0c;如果要在wpf下使用&#xff0c;只需要参考C#的对接demo即可&#xff0c;唯一不同的是&#xff0c;视频流数据显示的话&#xff0c;要么通过控件模式&#xff0c;要么…

【黑马头条】-day09用户行为-精度丢失-点赞收藏关注

文章目录 1 long类型精度丢失问题1.1 解决1.2 导入jackson序列化工具1.3 自定义注解1.4 原理1.5 测试 2 用户行为要求3 创建微服务behavior3.1 微服务创建3.2 添加启动类3.3 创建bootstrap.yml3.4 在nacos中配置redis3.5 引入redis依赖3.6 更新minio 4 跳过 1 long类型精度丢失…

小红的白色字符串

题目描述 小红拿到了一个字符串&#xff0c;她准备将一些字母变成白色&#xff0c;变成白色的字母看上去就和空格一样&#xff0c;这样字符串就变成了一些单词。 现在小红希望&#xff0c;每个单词都满足以下两种情况中的一种&#xff1a; 1.开头第一个大写&#xff0c;其余为…

01、ArcGIS For JavaScript 4.29对3DTiles数据的支持

综述 Cesium从1.99版本开始支持I3S服务的加载&#xff0c;到目前位置&#xff0c;已经支持I3S的倾斜模型、3D Object模型以及属性查询的支持。Cesium1.115又对I3S标准的Building数据实现了加载支持。而ArcGIS之前一直没有跨越对3DTiles数据的支持&#xff0c;所以在一些开发过…

抖音滑块验证码加密的盐的位置

最近更新后之前很容易找到盐的位置的方法变了&#xff0c;抖音特意把盐隐藏起来了 {"reply": "RJC","models": "yAd8rl","in_modal": "DTn0nD2","in_slide": "ou7H0Ngda","move": …

Vue2(十五):replace属性、编程式路由导航、缓存路由组件、路由组件独有钩子、路由守卫、history与hash

一、router-link的replace属性 1、作用&#xff1a;控制路由跳转时操作浏览器历史记录的模式 2、浏览器的历史记录有两种写入方式&#xff1a;分别为push和replace&#xff0c;push是追加历史记录&#xff0c;replace是替换当前记录。路由跳转时候默认为push 3、如何开启repla…

环信 IM 客户端将适配鸿蒙 HarmonyOS

自华为推出了自主研发操作系统鸿蒙 HarmonyOS 后&#xff0c;国内许多应用软件开始陆续全面兼容和接入鸿蒙操作系统。环信 IM 客户端计划将全面适配统鸿蒙 HarmonyOS &#xff0c;助力开发者快速实现社交娱乐、语聊房、在线教育、智能硬件、社交电商、在线金融、线上医疗等广泛…

基于java+springboot+vue实现的网上购物系统(文末源码+Lw+ppt)23-42

摘 要 随着我国经济的高速发展与人们生活水平的日益提高&#xff0c;人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下&#xff0c;人们更趋向于足不出户解决生活上的问题&#xff0c;网上购物系统展现了其蓬勃生命力和广阔的前景。与此同时&#xff0c;为…

我与C++的爱恋:类与对象(二)

​ ​ &#x1f525;个人主页&#xff1a;guoguoqiang. &#x1f525;专栏&#xff1a;我与C的爱恋 ​ 本篇着重介绍构造函数和析构函数&#xff0c;剩余内容在下篇解答。 一、类的默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 任何类在什么都不写时…

GFS部署实验

目录 1、部署环境 ​编辑 2、更改节点名称 3、准备环境 4、磁盘分区&#xff0c;并挂载 5. 做主机映射--/etc/hosts/ 6. 复制脚本文件 7. 执行脚本完成分区 8. 安装客户端软件 1. 安装解压源包 2. 创建gfs 3. 安装 gfs 4. 开启服务 9、 添加节点到存储信任池中 1…

RUM 最佳实践-交互延迟的探索与发现

FID 在互联网高速发展的时代&#xff0c;用户体验已成为企业竞争的关键所在。网页性能作为用户体验的重要组成部分&#xff0c;直接影响着用户的满意度和工作效率。First Input Delay&#xff08;FID&#xff09;作为衡量网页性能的重要指标&#xff0c;越来越受到业界关注。今…