MySql 高阶 概念(了解即可)

在这里插入图片描述
mysql 分为4层结构:
连接层:负责处理链接,鉴权,安全。
服务层:负责sql接口,sql分析,sql优化,sql缓存。
引擎层:负责执行服务层的操作,不同的引擎拥有不同的特性。(索引在该层)
存储层:将数据存储到文件上。

输入 show engine; 可以查询到mysql 支持的存储引擎:
在这里插入图片描述
目前只有 InnoDB 支持 事务 。

mysql 5.5之后默认使用的就是 innoDB
想设置其他引擎可以在创建表时末尾设置 engin = xxxx:
在这里插入图片描述
在这里插入图片描述
InnoDb:默认的引擎,如果需要支持事务和外键,那就是唯一的选择。
MyISAM: 读取速度快,更新速度慢,不支持事务,已经被 mogoDB取代。
Memory:数据只存在内存中,已经被redis 取代。

一、什么是数据库索引:

索引(index)是帮助数据库提高获取数据效率数据结构

例如:下面的数据为例,当要查找45时。如果全文检索,从上到下需要比对7次,如果二叉树索引只需要2步就差查询到结果。
在这里插入图片描述

索引的数据结构

在这里插入图片描述

数据结构的特点

在这里插入图片描述

数据结构的进化:

1、二叉树: 顺序插入时,会导致层级较深。

在这里插入图片描述

2、红黑树:(平衡二叉树)会自平衡,但是在大数据量情况下,层级也会很深。

在这里插入图片描述

3、B-tree (多路平衡查找树)下面的例子是 5阶的B-tree,B树的缺点是,顺序查找速度慢。

在这里插入图片描述

4、B+树(重点)

1、所有数据都保存在叶子节点中:非叶子节点仅用于索引,不保存数据记录,这样可以提高查询性能,因为查找任何数据都必须从根节点遍历到叶子节点。
2、叶子节点之间通过链表连接:所有叶子节点按关键字的大小顺序链接,形成一个有序链表,这有利于范围查询和顺序访问。
3、更高的分支度:相较于B树,B+树每个节点可以存储更多的关键字,减少了树的高度,从而减少了磁盘I/O次数,提高了查询效率。
4、顺序访问性:由于叶子节点通过链表连接,B+树支持顺序遍历,这对于需要顺序访问数据的场景非常有用。
5、适应磁盘读写:B+树的节点大小通常与磁盘页的大小相同,这使得B+树能够很好地适应磁盘读写操作,减少磁盘I/O开销。

在这里插入图片描述
B+Tree在线演示地址:https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html

B+tree 存放数据的查询效率问题

高度为2 时: 如果主键是bigint 1171 *16 = 18736 条数据 如果不 int 就是4个字节还可以翻倍
高度为3 时: 1171 * 1171 *16 = 21939856 大概2千多万条数据。所以通过主键查询效率很高。

Hash 索引:

hash索引就是采用hash算法,将key value 存储到hash 表中,如果有hash冲突就,用链表的方式解决。
有点单个数据查询速度快,但是不支持范围查询,不支持排序操作。 同理于 hashMap 和 redis
在这里插入图片描述

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

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

相关文章

《机器学习》一元、多元线性回归的实现 No.4

一、一元线性回归实现 先直接看完整代码: import pandas as pd import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegressiondate pd.read_csv(data.csv) #导入数据plt.scatter(date[广告投入],date[销售额]) # 用散点图展示数据 plt.sh…

这对二婚夫妻结婚半年,一起生活才一个月,就走到了婚姻尽头!

这对二婚夫妻结婚半年,一起生活才一个月,就走到了婚姻尽头! 这是一篇涉离婚纠纷的民事起诉状 (范文点评) 离 婚 起 诉 状 原告:韩某斌,男,现年37岁,汉族,打…

记录一个变量溢出的bug

文章目录 如题 如题 count2变量溢出了(超过了255),结果导致busOff_16bitRecordHILTime变量莫名其妙被清0

「C++系列」vector 容器

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站:人工智能教程 文章目录 一、vector 容器1. 基本特性2. 基本操作3. 注意事项 二、应用场景1. 应用场景2. 案例案例一&#xff1…

DRF——请求的封装与版本管理

文章目录 django restframework1. 快速上手2. 请求数据的封装3. 版本管理3.1 URL的GET参数传递(*)3.2 URL路径传递(*)3.3 请求头传递3.4 二级域名传递3.5 路由的namespace传递 小结 django restframework 快速上手请求的封装版本…

公司的全称可以申请注册商标吗,还有什么注意!

近日有个网友找到普推知产商标老杨,发来公司全称,问这个可以申请注册商标不,看发来是“贵州**酒业有限公司”,应该是做茅台镇酒的,以前以分析过《公司全称能不能注册商标》,这次帮网友分析完做下补充。 公…

基于springboot的招聘系统的设计与实现

TOC springboot614基于springboot的招聘系统的设计与实现--论文 研究背景 近年来,由于计算机技术和互联网技术的快速发展,使得所有企事业单位内部都是数字化、信息化、无纸化的发展趋势,随着趋势的发展,各种决策系统、辅助系统…

编码器精度

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 前言一、影响因素二、编码器精度三、位置因素四、环境因素五、磁编码器 前言 送给大学毕业后找不到奋斗方向的你&…

IntelliJ IDEA 集成 ShardingSphere-JDBC 访问分库分表

背景 众所周知,IntelliJ IDEA 是 Java 领域常用的开发工具之一,IDEA Ultimate(旗舰版)或其他例如 DataGrip 等 Intellij 平台的工具都集成了对数据库的访问能力。 但是,对于做了分库分表的项目,直接使用 …

中秋节月饼销售利用106短信群发平台业绩翻倍案例分析

在中秋节这一传统佳节,月饼作为节日的标志性食品,其销售市场竞争尤为激烈。为了在众多品牌中脱颖而出,不少月饼销售企业开始探索创新的营销方式。其中,利用106短信群发平台进行精准营销,成为众多企业实现业绩翻倍的有效…

TCP端口范围

ip_local_port_range sysctl -a | grep ip_local_port_range | head 默认情况下,net.ipv4.ip_local_port_range的默认值为32768-60999。这意味着本地应用程序可以使用的端口号范围为32768到60999。 sysctl -a | grep net.ipv4.ip_local_reserved_ports |head …

C++ 特殊类设计以及单例模式

目录 1 不能被拷贝 2 只能在堆上创建对象 3 只能在栈上创建对象 4 禁止在堆上创建对象 5 不能被继承的类 6 单例类 特殊类就是一些有特殊需求的类。 1 不能被拷贝 要设计一个防拷贝的类,C98之前我们只需要将拷贝构造以及拷贝赋值设为私有,同时只声明…

2 种方式申请免费 SSL 证书,阿里云 Certbot

如何使用免费的 SSL 证书,有时在项目中需要使用免费的 SSL 证书,Aliyun 提供免费证书,三个月有效期,可以直接在aliyun 申请,搜索 SSL 证书,选择测试证书。 Aliyun 证书需要每三月来来换一次,页…

【学习笔记】8、脉冲波形的变换与产生

本章简略记录。 8.1 单稳态触发器(脉冲触发) 单稳态触发器 应用于 :(1)脉冲整型(2)脉冲延时 (3)定时 单稳态触发器的工作特性: 没有触发脉冲作用时&#xf…

Vue项目-三级联动的路由跳转与传参

三级联动组件的路由的跳转与传参 三级联动,用户可以点击的:一级分类、二级分类和三级分类 以商城项目为例,Home模块跳转到Search模块,以及会把用户选中的产品(产品名字、产品ID)在路由跳转的时候&#xff…

《黑神话.悟空》:一场跨越神话与现实的深度探索

《黑神话.悟空》:一场跨越神话与现实的深度探索 在国产游戏日益崛起的今天,《黑神话.悟空》以其独特的剧情、丰富的人物设定和深刻的主题,成为了无数玩家翘首以盼的国产3A大作。这款游戏不仅是一次对传统故事的创新演绎,更是一场对…

操作系统:内存管理策略

外部碎片 当应用程序启动时,由操作系统负责给该应用程序分配其内存空间,假设此时启动了三个应用程序,操作系统分别给其分配了100m,10m和50m的内存,内存情况如下图 此时如果程序B下线,程序A和程序C之间便会…

【css】伪元素实现图片个悬停文字聚焦效果

实现重点: 文字覆盖在图片上: 通过使用 position: absolute 将 .box 文字盒子定位在图片上方。父容器 .img-wrap 使用了 position: relative 确保子元素的绝对定位在父容器的边界内生效。 创建悬停效果: 通过使用 &::before 和 &::…

国富基金入股的关联性与奇瑞依赖症,大昌科技业务独立性引关注

《港湾商业观察》廖紫雯 日前,安徽大昌科技有限公司(以下简称:大昌科技)更新招股书并完成三轮问询,公司冲刺深交所创业板得到进一步进展。此前,2023年6月,大昌科技IPO获深交所受理,…

【微信小程序】自定义组件 - 数据、方法和属性

1. data 数据 2. methods 方法 在小程序组件中,事件处理函数和自定义方法需要定义到 methods 节点中,示例代码如下: 3. properties 属性 在小程序组件中,properties 是组件的对外属性,用来接收外界传递到组件中的数…