【研究生复试】计算机软件工程人工智能研究生复试——资料整理(速记版)——数据库

news2024/12/30 2:47:14

1、JAVA
2、计算机网络
3、计算机体系结构
4、数据库
5、计算机租场原理
6、软件工程
7、大数据
8、英文 自我介绍

4. 数据库

1. B+树相对于B树的区别及优势

  • B树中有重复元素,B树没有重复元素
  • B树种每个节点都存储了key和data,B+树内节点去掉了其中指向数据(data record)的指针,使得每个节点中可以存放更多的key,意味着树的高度可以被压缩
  • B+树的叶子节点是链表形式,可以更方便的进行顺序遍历。而B树相邻的元素可能在内存中不相 邻,所以缓存命中性没有B+树好。
  • B+树查找更稳定,都是从根节点到叶节点
  • 在这里插入图片描述

2、聚簇索引和非聚簇索引

聚簇索引(一级索引):

将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据物理有序,叶子节点保存了数据
在这里插入图片描述

mysql中聚簇索引的设定: 聚簇索引默认是主键,如果表中没有定义主键,InnoDB 会选择一个唯一的非空索引代替。如果没有这样的索引,InnoDB 会隐式定义一个主键来作为聚簇索引。
InnoDB 只聚集在同一个页面中的记录。包含相邻健值的页面可能相距甚远。

非聚簇索引(辅助索引、二级索引):

将数据与索引分开存储,索引结构的叶子节点指向了数据对应的位置
叶子节点保存的是id(主键),然后回表(二次查找)
在这里插入图片描述
在这里插入图片描述

  • undo log
    回滚操作而诞生的机制,当出现错误时,根据undo log进行回滚。
    在这里插入图片描述

undo:增删改 update delete insert
undo Log两大类:
新增操作,事务提交后可以直接删除
update和delete,配合mvcc使用
在这里插入图片描述
在这里插入图片描述

  • undo log和redo log的区别
    redo log解决的是系统崩溃的问题,当是一个事务提交后,只进行了一半操作,可以使用redo log日志
    重做。所以,事务提交后,先写redo log(应该是先写undo log),然后再执行相应的操。
    只有在日志记录全部都安全落盘,然后在最后写上“Commit Record”后,表示所有的操作记录我都写完啦。

undo log:
redo log太慢,没有写完redo log, 数据库是不能写的。
即使事务提交前磁盘 I/O 有足够空闲、即使某个事务修改的数据量非常庞大,占用大量的内存缓冲,无论何种理由,都决不允许在事务提交之前就开始修改磁盘上的数据,万一系统崩溃了,数据出差谁负责呀?
这就需要引入Undo Log(回滚日志),在偷摸写入数据之前,必须先在Undo Log中记录都写入了什么数据,改了什么地方,到时候事务回滚了,就按照Undo Log日志,一条条恢复到原来的样子,就像没有改过一样。
Undo Log还有一个作用,就是实现多个行版本控制(MVCC),当读取的某一行被其他事务锁定时,它可以从 Undo Log 中获取该行记录以前的数据是什么,从而提供该行版本信息,让用户读取。

4、 MVCC部分

多版本并发控制。避免并发操作出现问题,使得数据一致。
可以实现读已提交(解决脏读)和可重复读(解决脏读和不可重复读),但是mvcc不能解决幻读,需要用锁机制解决。
使用undo log和readview来解决

  • 实现读已提交:
    每个select都创建一个readview
  • 实现可重复读:
    一个事务种的第一个select创建readview,之后的select不再创建
    查找undo log种的版本(四步):

innodb种会记录未提交事务的id,从小到大。

  • 判断该版本是否为当前事务创建
  • 判断是否比最小的小
  • 判断是否比最大(max_trx_id)的大
  • 。。。。

5、主从复制

主:负责写
从:负责读
数据如何同步的?
在这里插入图片描述

数据延时问题解决:
主服务器:先写binlog,再同步过去,发送等待slave的ACK回应,再写数据。

6、 分库分表

  • 水平拆分
  • 垂直拆分
    插数据流程:先找库,再找表。
    奇数偶数分库,取余操作分表。

7、sql执行过程s

在这里插入图片描述

8、 锁

  • S锁,共享锁,读锁
    select user from table where id < 10 lock in share mode;
  • X锁,排他锁,写锁
    select from table for update;

锁没有mvcc效率高。
意向共享锁(IS)
意向排他锁(IX)
意向锁用来判断是否加锁了。

死锁

myisam没有死锁

9、 - 索引失效

在这里插入图片描述

10、 - 数据库调优

  • 查看索引是否失效
    like %开头
    字符串没有单引号
    联合索引没有符合最左匹配原则
    使用了range方位查找
    or左右只有一个主键字段。
  • 优化数据库的结构
    使用频率低的表作为新表
    使用频率高的字段冗余为一个表
    需要联合查询的表建立中间表
  • 分解关联查询
  • 优化limit分页
    原来:select * from table limit 10000, 10
    改成:select * from table where id >= 10000 limit 10
    这样使用了主键,可以优化。

11、 - explain中的字段

  • id 查询中的序列号
  • select_type: 表示 select 查询的类型,主要是用于区分各种复杂的查询,例如: 普通查询 、 联
    合查询 、 子查询 等。
  • table:表名
  • type(重要):从上到下,最好–>最差
    system:只有一行或者空表,基本不可能存在
    const:表中只有一行记录匹配,主键或者unique索引
    eq_ref:联合查找,前面的唯一对应后面的表
    ref:匹配多行
    fulltext:全文索引,优先级很高,比普通索引优先级高
    ref_or_null:和ref类似
    index_merge
    unique_subquery
    index_subquery
    range
    index: 索引全表扫描,把索引从头到尾扫一遍。这里包含两种情况:一种是查询使用了覆盖索引,那么它只需要扫描索引就可以获得数据,这个效率要比全表扫描要快,
    All: 全表扫描,没有使用索引。
  • filtered:查出的结果/内部查询时所读的行数的百分比,100%说明大概率走了索引
  • extra(重要):distinct:在select部分使用了distinc关键字
    Using filesort:当 Extra 中有 Using filesort 时,不能通过索引顺序达到排序效果.
    Using index:“覆盖索引扫描”, 表示查询在索引树中就可查找所需数据, 不用扫描表数据文件,往往说明性能不错
    Using temporary: 查询有使用临时表, 一般出现于排序, 分组和多表 join 的情况, 查询效率不高, 建议优化.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

互联网时代的文学复兴:中文诗词大数据分析 | 开源日报 No.170

chinese-poetry/chinese-poetry Stars: 45.4k License: MIT 最全的中文诗歌古典文集数据库&#xff0c;包含 5.5 万首唐诗、26 万首宋诗、2.1 万首宋词和其他古典文集。数据来源于互联网。该开源项目旨在通过 JSON 格式分发&#xff0c;方便用户开始自己的项目&#xff0c;并借…

嵌入式内核链表list_head,如何管理不同类型节点的实现

在Linux内核中&#xff0c;提供了一个用来创建双向循环链表的结构 list_head。虽然linux内核是用C语言写的&#xff0c;但是list_head的引入&#xff0c;使得内核数据结构也可以拥有面向对象的特性&#xff0c;通过使用操作list_head 的通用接口很容易实现代码的重用&#xff0…

AAAI 2024 | Adobe提出全新上下文提示学习框架CoPL,高效提升下游性能

论文题目&#xff1a;CoPL: Contextual Prompt Learning for Vision-Language Understanding 论文链接&#xff1a;https://arxiv.org/abs/2307.00910 提示学习&#xff08;Prompt Learning&#xff09;在近几年的快速发展&#xff0c;激活了以Transformer为基础的大型语言模型…

【机器学习】数据清洗之识别重复点

&#x1f388;个人主页&#xff1a;甜美的江 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;机器学习 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步…

1、若依(前后端分离)框架的使用

若依&#xff08;前后端分离&#xff09;框架的使用 0、环境1、下载若依(1) 下载并解压(2) 导入SQL语句(3) 配置Redis、MySQL 2、运行若依3、登录(1) 前端(2) 后端 4、获取用户角色、权限和动态路由(1) 获取用户角色、权限(2) 根据用户信息获取动态路由【getRouters】 5、杂6、…

每日一练:LeeCode-530、二叉搜索树的最小绝对差【二叉搜索树+pre辅助节点+DFS】

本文是力扣LeeCode-530、二叉搜索树的最小绝对差【二叉搜索树pre辅助节点DFS】 学习与理解过程&#xff0c;本文仅做学习之用&#xff0c;对本题感兴趣的小伙伴可以出门左拐LeeCode。 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。…

面试经典150题——有效的数独

​"Strive not to be a success, but rather to be of value." - Albert Einstein 1. 题目描述 2. 题目分析与解析 2.1 暴力求解 没思路&#xff0c;老规矩&#xff0c;先来一次笨办法&#xff0c;先把步子迈出去&#xff0c;因为可能笨办法写着写着就会有更多的…

STM32 HAL库 STM32CubeMX -- IWDG(独立看门狗)

STM32 HAL库 STM32CubeMX -- IWDG 一、IWDG简介二、独立看门狗的工作原理三、驱动函数初始化函数HAL IWDG Init()初始化函数HAL IWDG Init()其他宏函数 四、超时时间计算第一种办法第二种办法&#xff08;推荐&#xff09; 一、IWDG简介 看门狗(Watchdog)就是MCU上的一种特殊的…

企业数字化转型战略规划与实践:迈向未来的关键之举

在信息技术的不断革新和全球数字化浪潮的推动下&#xff0c;企业数字化转型已经成为当今商业世界中不可或缺的一项战略规划。随着技术的进步&#xff0c;企业必须积极应对数字化转型的挑战&#xff0c;并将其作为发展的关键驱动力。本文将探讨企业数字化转型的重要性&#xff0…

JavaWeb之Servlet接口

Servlet接口 什么是Servlet&#xff1f; Servlet是一种基于Java技术的Web组件&#xff0c;用于生成动态内容&#xff0c;由容器管理&#xff0c;是平台无关的Java类组成&#xff0c;并且由Java Web服务器加载执行&#xff0c;是Web容器的最基本组成单元 什么是Servlet容器&…

浅谈电商场景中的扣除库存问题

库存 一、场景二、扣减时机1.下单时扣库存2.支付完成扣库存3.预扣除 三、库存存储方案1.数据库存储2.数据库缓存混合存储 四、整体方案1.单数据库方案2.主从数据库方案3.主从数据库缓存方案4.数据库缓存混合存储 五、其他情况1.秒杀QPS过高2.Redis QPS过高3.Master DB QPS过高4…

java生态环境评价Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java 生态环境评价管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysq…

【sgCreateTableColumn】自定义小工具:敏捷开发→自动化生成表格列html代码(表格列生成工具)[基于el-table-column]

源码 <template><!-- 前往https://blog.csdn.net/qq_37860634/article/details/136126479 查看使用说明 --><div :class"$options.name"><div class"sg-head">表格列生成工具</div><div class"sg-container"…

问题:人的安全知识和技能是天生的。() #媒体#知识分享#学习方法

问题&#xff1a;人的安全知识和技能是天生的。&#xff08;) 人的安全知识和技能是天生的。() 参考答案如图所示 问题&#xff1a;&#xff08;&#xff09;是党和国家的根本所在、命脉所在&#xff0c;是全国各族人民的利益所在、幸福所在。 A.人民当家作主 B.坚持和完善…

Crypto-RSA3

题目&#xff1a;&#xff08;BUUCTF在线评测 (buuoj.cn)&#xff09; 共模攻击 ​ 前提&#xff1a;有两组及以上的RSA加密过程&#xff0c;而且其中两次的m和n都是相同的&#xff0c;那么就可以在不计算出d而直接计算出m的值。 ​ 设模数为n&#xff0c;两个用户的公钥分别为…

JavaScript中什么是事件委托

JavaScript 中的事件委托&#xff08;Event delegation&#xff09;是一种重要的编程技术&#xff0c;它能够优化网页中的事件处理&#xff0c;提高程序的性能和可维护性。本文将详细介绍事件委托的概念、工作原理&#xff0c;并提供示例代码来说明其实际应用。 事件委托是基于…

ARM编译器5.06下载安装

ARM编译器5.06下载安装 1.官网下载 进入官方网站ARM Complier v5.06官网下载页面 进入后的界面为 往下翻&#xff0c;找到如图位置的5.06 for windows的文件&#xff0c;点击下载&#xff0c;下载时需要登录账号 2.安装 先解压下载的压缩文件&#xff0c;在installer文件夹里…

英文单词-计算: calculate、count、compute、reckon

英文单词-计算: calculate、count、compute、reckon count 数数; 计算总数; 重要; 包括在内; 正式认可; 认为; 被视作; compute 计算&#xff0c;估算; calculate 计算; 估算; 估计; 预料; reckon 测算&#xff0c;估计; 认为; 计算; 评定&#xff0c;断定; 这四个单词 “c…

文件管理大师:深入解析Linux的文件与目录操控

目录 一、文件命名规则 1、可以使用哪些字符? 2、文件名的长度 3、Linux文件名大小写 4、Linux文件扩展名 二、文件管理命令 1、目录创建/删除 mkdir创建目录 直接创建文件夹 创建多个文件夹 递归创建写法 总结mkdir 删除空目录 2、文件创建、删除 touch创建文…

数解 transformer 之 self attention transformer 公式整理

千万不要从任何角度轻看 transformer&#xff0c;重要的话说四遍&#xff1a; 千万不要从任何角度轻看 transformer 千万不要从任何角度轻看 transformer 千万不要从任何角度轻看 transformer Attention is all you need 整个项目是鬼斧神工之作&#xff0c;巧夺天工之作&a…