数据库总结

文章目录

  1. 自适应hash:
    采用自适应 Hash 索引目的是方便根据 SQL 的查询条件加速定位到叶子节点,特别是当 B+ 树比较深的时候,通过自适应 Hash 索引可以明显提高数据的检索效率。

  2. 页目录:
    页目录其实就是给页做了个目录,为了加速查找的,一个页中存放了一个一个的行记录它们是以链表连接的,一个一个查找效率低,所以给每个页做了页目录,使用了二分查找,对应的是slot槽,二分查找也是对slot查找的,每个槽会指向某个行记录,对于非叶子节点的话行记录里面存储的是目录项,对于叶子节点的话存储了具体的数据,非叶子节点存储了多少多少页用来快速定位到叶子节点,叶子节点存储实打实的数据。

  3. 定位慢查询:
    开启慢查询日志,超过查询时间的sql会写入到慢查询日志中,可以使用工具来查看,再拿到慢的sql后,explain生成执行计划,分析。

  4. 执行计划中有什么:
    执行计划其实就详细的说明了查询的细节吧,像type:它表示对一个表在查询时怎样访问,是用到主键索引还是唯一索引还是普通索引。还能看到可能用到的索引实际用到的索引、用到索引的长度啊,包括额外字段啊提示我们用没用索引,是不是索引条件下推等等啊,然后可以根据查询计划来具体的分析,然后优化。

  5. 索引失效:
    最左前缀、联合索引范围后失效、%开头、对索引字段计算啊作用函数啊类型转换啊、非条件索引失效(不等于啊、is not null)

  6. 覆盖索引和索引条件下推:
    在这里插入图片描述

  7. 数据并发安全问题:
    在这里插入图片描述
    解决办法:在这里插入图片描述

  8. 事务的ACID:
    A:原子性,undo log
    C:一致性:事务执行前后要合理要符合我们规定的,与业务是有关的,钱不能为负数
    I:隔离性:锁机制来实现
    D:持久性 redo log

  9. redo log
    在这里插入图片描述
    10 redo log一定安全吗不会丢失数据吗?
    不一定吧,其实他有三种刷新的策略的也是可以去设置的,0 的话其实 每次commit后都会在redo log buffer中记录,由innoDB的后台线程每一秒将buffer中的写入文件系统缓存再刷新到磁盘,所以这种情况下可能会丢失一秒的数据;设置为1的话每次事务commit就一定会记录到磁盘,这时候是安全的;设置为2的话它是由操作系统没一秒刷新到磁盘。

11 undo log的作用:
MVCC的实现就依赖于undo log,行记录中的回滚指针就指向了undo log,undo log版本链记录了对这个记录的历史的修改信息,读之前的版本或者事务回滚都依赖undo log

12 意向锁:
意向锁其实就像一种行级锁的标志,当我们要加表锁时,如果表中有行的X锁的话,那其实是不能让这个事务获得表锁的,这样的话如果没有意向锁的话就要去一条一条记录去查看看有没有X锁,这样的话就性能低,意向锁就是在表级别上的这样一个锁,它描述的就是表中记录的X锁啊S锁啊这种,其实更类似于一种行锁的标记吧,也是为了快速判断能不能加表锁。

13 MVCC
在这里插入图片描述

14 ReadView的规则
在这里插入图片描述
15 redo log 写入master成功此时没写入bin log master宕机了,那slave与master数据就造成不一致怎么解决:
两阶段提交,redo log 提交分两阶段,在写入bin log 后再最终提交

16

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

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

相关文章

实现消息队列(Kafka、ActiveMQ、RabbitMQ和RocketMQ)高可用

概述 单机没有高可用可言,高可用都对集群来说的 要保证消息队列系统(如Kafka、ActiveMQ、RabbitMQ和RocketMQ)的高可用性,可以采取以下一些通用的措施: 集群部署:将消息队列系统部署为集群,包…

2-web端管理界面使用rabbitmq

Web管理界面可以直接操作RabbitMQ,下面进行操作并记录步骤 1、添加交换器: Add a new exchange 中,Name是交换器名称,Type是交换器类型,有direce、fanout、heders、topic 4种。 这里先只填Name和选个类型,…

寒假作业Day 07

寒假作业Day 07 一、选择题 函数rewind的作用是使文件位置指针重新返回文件的开始位置。这是C语言程序中的库函数,它针对的是文件内部的位置指针,而不是文件指针。文件内部的位置指针会随着对文件的读写操作而向后移动,而文件指针则是指向整…

【考研数学】武忠祥各阶段用书搭配+学习包

25考研数学全流程规划!别等到二战了才知道这样学 本人属于基础很差相当于是零基础的考研党,经过一年备考成功上岸 中间花费了很多时间在考研数学备考信息检索上,写下这篇希望能帮助基础不好的学弟学妹们多节约一些时间复习! 25…

Sealos 给全体用户献上开春福利!降价 33.5%~73.4%

Sealos 经过 23 年一年的迭代,获得了用户的广泛好评,注册用户已破十万,应用数量也突破一万,24 年的工作重心会放在价格上,在我们不死掉的情况下尽可能为用户谋福利! 好消息是 Sealos 与各大云厂商深度合作…

【学习笔记】数据结构与算法06 - 堆:上堆、下堆、Top-K问题以及代码实现

知识来源:https://www.hello-algo.com/chapter_heap/heap/#4 文章目录 2.5 堆2.5.1 堆(优先队列2.5.1.1 堆的常用操作 2.5.2 堆的存储与表示2.5.2.1 访问堆顶元素2.5.2.2 入堆时间复杂度 2.5.2.3 堆顶元素出堆时间复杂度 2.5.3 堆的常见应用2.5.4 建堆问…

day13_微服务监控Nginx(微服务集成SBA)

文章目录 1 微服务系统监控1.1 监控系统的意义1.2 SBA监控方案1.3 SBA实战1.3.1 创建SBA服务端1.3.2 微服务集成SBA 1.4 微服务集成logback1.5 配置邮件告警 2 Nginx2.1 Nginx简介2.2 下载和安装2.2.1 方式1:window本地安装2.2.1.1 下载2.2.1.2 安装2.2.1.3 目录结构…

小火星露谷模组管理页面简介

1. 已有详细介绍的功能 模组管理页面部分功能已经有较为详细的介绍: 添加模组:https://svmbbs.smallfire.cn/d/15-dian-nao-zhong-yi-jing-you-duo-ge-mo-zu-ya-suo-wen-jian-ru-he-pi-liang-an-zhuang一键更新模组:https://svmbbs.smallfi…

推理判断-聂佳-图形2

1、数量规律-点数量 总结: 1.数奇点 2.算笔画 题目 直线题目 2、数量规律-面 知识点讲解 题目 3、数量规律-素数量 知识点讲解 题目 4、空间重构-相对面 知识点讲解 ​​​​​​ 总结 题目 课后测验

哪些公司在招聘GIS开发?为什么?

之前我们给大家整理汇总了WebGIS在招岗位的一些特点,包括行业、学历、工作经验等。WebGIS招聘原来看重这个!整理了1300多份岗位得出来的干货! 很多同学好奇,这些招GIS开发的都是哪些公司?主要是做什么的? …

Elasticsearch:dense vector 数据类型及标量量化

密集向量(dense_vector)字段类型存储数值的密集向量。 密集向量场主要用于 k 最近邻 (kNN) 搜索。 dense_vector 类型不支持聚合或排序。 默认情况下,你可以基于 element_type 添加一个 dend_vector 字段作为 float 数值数组: …

力扣爆刷第87天之hot100五连刷21-25

力扣爆刷第87天之hot100五连刷21-25 文章目录 力扣爆刷第87天之hot100五连刷21-25一、240. 搜索二维矩阵 II二、160. 相交链表三、206. 反转链表四、234. 回文链表五、141. 环形链表 一、240. 搜索二维矩阵 II 题目链接:https://leetcode.cn/problems/search-a-2d-…