Mysql 45讲和45问笔记(未完待续0203/04/24)

news/2024/4/27 8:02:52/文章来源:https://blog.csdn.net/weixin_43679037/article/details/130319630

一、mysql 45讲

1)索引的本质讲解

  • 定义解释
    所以是帮助Mysql高效获取数据的排好序数据结构

  • 索引数据结构
    ①二叉树
    ②红黑树
    ③Hash表
    ④B-Tree

  • 原理讲解
    在这里插入图片描述
    可以看到右边的数据结构里面,是按照k-v来存数据结构的,key是col2的字段,这个value对应的是这个节点对应数据在磁盘中的地址

2)索引的数据结构详解和索引的规约

①二叉树:当维护逐一增加的的数值,例如从1到9递增时,会退化成链表,查找效率低下
下图是二叉排序树的排序:
在这里插入图片描述
②红黑树(又名二叉平衡树)
1)同一节点只有两个子节点,不如B树,当存储大量节点时候,树的高度太高了,I/O次数太多
2)B+树,分配一个索引节点时候,会分配更大空间,存储更多小索引元素
在这里插入图片描述

③Hash表

④B-Tree
1)对比红黑树增加了更多节点,相同节点更少的I/O磁盘检索次数,也就是更矮的树
在这里插入图片描述
⑤B+Tree
1)数据都放在叶子节点(这里data其实就是数据的地址),非叶子节点不存储数据只存储索引,可以放更多索引
2)叶子节点之间用指针连接,提高区间访问的性能,节点键值从左往右递增
3)下面图里面的一个节点(15和18)默认分配16K的大小,把索引节点的第一个节点提上去作为冗余节点,比如这里的15会被提上去,15傍边空白块就是15节点的指针,当高度为3,一个节点(假设主键为bigint也就是8B,空白块为6B,一个节点16KB,那么一共可以存1170个节点),不同的数据存储引擎不同的data大小,假设data是1KB,那么15+data就是16个索引元素。所以3层一共可存储1170117016个节点,也就是2千多万节点
https://www.bilibili.com/video/BV1ge4y117cM?p=3&spm_id_from=pageDriver&vd_source=27ec8b3b09d2a66ceeb9dbe961a247d3
7:37
在这里插入图片描述

索引规约
1)业务上具有唯一特性的字段,即使是组合字段,也必须建成唯一索引
2)
(1)超过三个表禁止join
(2)需要join的字段,数据类型保持绝对一致
(3)多表关联查询时,保证被关联的字段需要有索引
(注意:即使双标join也要注意表索引、SQL性能)
3)在varchar字段上建立索引时,必须指定索引长度,没必要对全字段建立索引,根据文本区分度决定索引长度

二、myqsl 45问

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

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

相关文章

Java学习-MySQL-事务

Java学习-MySQL-事务 ACID原则:原子性、一致性、隔离性、持久性 原子性(Atomicity) 两个步骤要么一起成功,要么一起失败,不可能只成功一个。 举例: A账户400元,B账户600元,A向B转…

Yolo v1 笔记

个人不太懂的点 1.损失函数的4与5项 【论文解读】Yolo三部曲解读——Yolov1 - 知乎 https://www.youtube.com/watch?vNkFENlEb4kM&t672s 训练阶段: C_i 预测值:由网络输出出来7*7*30中第一个bbox和第二个bbox的置信度confidence C_i^hat 标签值…

PTA L2-046 天梯赛的赛场安排 (25 分)

天梯赛使用 OMS 监考系统,需要将参赛队员安排到系统中的虚拟赛场里,并为每个赛场分配一位监考老师。每位监考老师需要联系自己赛场内队员对应的教练们,以便发放比赛账号。为了尽可能减少教练和监考的沟通负担,我们要求赛场的安排满…

C++ 类和对象(中)构造函数 和 析构函数

上篇链接:C 类和对象(上)_chihiro1122的博客-CSDN博客 类的6个默认成员函数 我们在C当中,在写一些函数的时候,比如在栈的例子: 如上述例子,用C 返回这个栈是否为空,直接返回的话&am…

利用Python操作Mysql数据库

我们在进行Python编程的时候,时常要将一些数据保存起来,其中最方便的莫过于保存在文本文件了。但是如果保存的文件太大,用文本文件就不太现实了,毕竟打开都是个问题,这个时候我们需要用到数据库。提到数据库&#xff0…

json模块和pickle模块

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 json和pickle模块 json模块序列化与反序列化json模块中的方法 pickle模块 专栏:《python从…

JAVAweb开发学习

六、MybatisPlus快速上手 数据库操作 注意!注意!注意!springboot版本选择2.7.2 1.ORM介绍(对象关系映射) 既包含存储,又包含映射。将java类映射到数据库 2.MybatisPlus介绍 ORM框架 数据库操作来啦…

【计算机网络】为什么 TCP 每次建立连接时,初始化序列号都要不一样呢?

【计算机网络】为什么 TCP 每次建立连接时,初始化序列号都要不一样呢? 为什么 TCP 每次建立连接时,初始化序列号都要不一样呢? 主要原因是为了防止历史报文被下一个相同四元组的连接接收。 TCP 四次挥手中的 TIME_WAIT 状态不是会…

机械键盘、口袋打印机,万元奖金等你拿!「万象格新」AI绘画X海报设计大赛即将开启...

号外!「万象格新」大赛开启 如果阳光暖到你心里,那一定是一格在想你~ 春夏交替,万物焕发生机,明媚色彩娱情惬意 在这样一个美好的时节 如果你: 心中荡漾着色彩斑斓的 AI 绘画创意 想要 show 出独到的审美与非凡设计能力…

吴恩达团队AI诊断心律失常研究:准确率超人类医生

2019年,吴恩达团队在AI医疗领域实现了一项革命性的突破,他们成功地让AI诊断心律失常,其准确率高达83.7%,超过了人类心脏病医生的78.0%。这项研究成果已经发表在了知名期刊Nature Medicine上。 一、如何让AI学会诊断心律失常&…

闲谈【Stable-Diffusion WEBUI】的插件:美不美?交给AI打分

文章目录 (零)前言(一)咖啡店艺术评价(Cafe Aesthetic) (零)前言 本篇主要提到了WEBUI的Cafe Aesthetic插件,这是一个相对独立的插件,单独标签页,…

Python小姿势 - Python基础知识

Python基础知识 Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。 Python的创始人为吉多范罗苏姆(Guido van Rossum),于1989年底发布第一个公开发行版本——0.9.0。 自2004年以来,Python已经成为顶级开源项目&…

希尔排序的实现

希尔排序是插入排序的一种升级,其基本思想是: 先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的记录分在同一组内,并对每 一组内的记录进行排序。然后,取,重复上述分组和排序的工 作…

使用Linux运维常识

一.基础操作 1.终端常用快捷键 快捷键描述ctrl键盘左键向左跳一个单词ctrl键盘右键向右跳一个单词Ctrl c停止当前正在运行的命令。Ctrl z将当前正在运行的命令放入后台并暂停它的进程。Ctrl d关闭当前终端会话。Ctrl l清屏,也可以用clear命令实现Tab自动补全当…

Asp.NET CORE实验室信息管理系统源码,支持IIS独立部署,Docker部署

技术架构:Asp.NET CORE 3.1 MVC SQLserver Redis等 基于B/S架构的实验室管理系统源码,整个系统的运行基于WEB层面,只需要在对应的工作台安装一个浏览器软件有外网即可访问。全套系统采用云部署模式,部署一套可支持多家医院检验…

自定义RecyclerView.LayoutManager实现类实现卡片层叠布局的列表效果

一.前言 先看效果(大佬们请忽略水印): 卡片层叠列表的实现效果已经发布成插件,集成地址:implementation ‘com.github.MrFishC:YcrCardLayoutHepler:v1.1’; 先讲解如何快速实现,然后再来讲解…

托福高频真词List05 // 附托福TPO阅读真题

目录 4月23日单词 生词 熟词 4月24日真题 4月23日单词 生词 sparsethinly distributedadj 稀疏的sparselythinlyadv 稀疏地congestion / kənˈdʒestʃən / overcrowdingn 拥挤continuallyregularlyadv 持续的eradicateeliminatev 消除facilitatemake easiereasev 使..…

《面试1v1》java泛型

我是 javapub,一名 Markdown 程序员从👨‍💻,八股文种子选手。 面试官:小伙子,说实话,泛型这个机制一开始我也是一头雾水,搞不太明白它到底要解决什么问题。你能不能不那么书呆子,给我普普通通地讲一讲泛型? 候选人…

如何测试信号源或者发射机的回波损耗

信用源或者发射机的return loss测试过程 1.用网分线缆的第一步就是看线的抖动情况,后面还是要多注意 经过一系列排查后,选用两个抖动比较小的线缆,然后开始测试另外一台仪器。 2.检查测试仪器的输出功率,见图1 打开信号源或者发射…

可以一学的代码优化小技巧:减少if-else冗余

前言 if-else 语句对于程序员来说,是非常非常熟悉的一个判断语句,我们在日常开发和学习中都经常看见它,if-else语句主要用于需要做出选择的地方进行判断,这里就不再赘述if-else语法和特点了。 ​ 我们在写代码(如图下…