首页 > 数据库 >mysql数据库(2)

mysql数据库(2)

时间:2024-01-05 21:14:12浏览次数:31  
标签:int 数据库 索引 IO mysql 节点 加载

一、B树、B+树

官方文档里说到,B树根节点指向叶子节点,但是人们忘了叶子节点可以互相指向,于是B+。

create table t1(
a int primary key,
b int,
c int,
d int,
e varchar(20)
)engine=InnoDB;

操作系统页单位4KB,mysql页单位16KB(逻辑单位,逻辑上一次取这么大)。如果按行读取时,相当于每次读一条记录进行一次磁盘IO,加载到内存。

如果以页为单位进行加载,4B*4+4B=20B(一条记录的大小),于是查一条目标数据,按页加载到内存,在内存进行查找,只进行了一次IO。

按自增索引插入,不用来回更改指针。如果数据记录很多,那么就遍历数据太多,于是有了增加了 目录。(空间换时间)

在InnoDB中,将6条记录为一组 ,这样查询时就可根据页目录跳过一些不符合的。

数据大了,页分裂,由指针连接页。当页多时,每一次查询页相当于进行一次磁盘IO,于是又需要查一个链表

 

解决方法:空间换时间,增加一个空间(索引页,管理信息、优化性能)放每页的第一个索引值。

全表扫描:叶子节点从左往右全表扫

走索引:从上往下走

mysql为了支持范围查找,设的双向链表

如果执行a>/<5,会先执行a=5,找到后直接把后面/前面所有数据全部返回。

标签:int,数据库,索引,IO,mysql,节点,加载
From: https://www.cnblogs.com/fengok/p/17948072

相关文章

  • mysql8.0变量
    1、变量在MySQL数据库的存储过程和函数中,可以使用变量来存储查询或计算的中间结果数据,或者输出最终的结果数据。在MySQL数据库中,变量分为系统变量以及用户自定义变量1.1、系统变量1.1.1、系统变量分类变量由系统定义,不是用户定义,属于服务器层面,启动MySQL服务,生成MySQL服务实例期......
  • openGauss学习笔记-187 openGauss 数据库运维-常见故障定位手段
    openGauss学习笔记-187openGauss数据库运维-常见故障定位手段187.1操作系统故障定位手段查询状态时,显示一个节点上所有实例都不正常时,可能是操作系统发生了故障。可以通过如下方法确定操作系统是否存在问题:通过SSH或者其它远程登录工具登录该节点。如果连接失败,请尝试通过......
  • EF CodeFirst mysql 迁移异常Unable to create a 'DbContext' of type
    问题过程终端执行dotnetefmigrationsaddinit出现如下错误:Pomelo.EntityFrameworkCore.MySqlMicrosoft.EntityFrameworkCore.ToolsUnabletocreatea'DbContext'oftype''.Theexception'Methodnotfound:'VoidCoreTypeMappingParameters......
  • Golang如何进行数据库查询
    Golang是一门高效、快速、强大的编程语言,可用于构建各种应用程序,尤其是在Web开发中表现突出。当与数据库结合使用时,Golang提供了一些强大的工具,帮助开发人员操作数据库。在本篇文章中,我们将重点介绍Golang如何进行数据库查询。一、Golang数据库查询Golang中的数据库查询主要有两......
  • 三菱电梯IC卡系统数据库备份与恢复
    查看msde2000的登录方式sa密码lonele64位操作系统下regquery"HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MicrosoftSQLServer\LONELE2\MSSQLServer"/vLoginModeHKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MicrosoftSQLServer\LONELE2\M......
  • MySQL-8.0布署
    下载软件https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.35-linux-glibc2.17-x86_64.tar.xz解压软件tarxvfmysql-8.0.35-linux-glibc2.17-x86_64.tar.xz-C/usr/local/mv/usr/local/mysql-8.0.35-linux-glibc2.17-x86_64/usr/local/mysql-8.0.35安装依赖......
  • 使用 dbgate 在 sealos 上完美管理 mysql pgsql 等数据库
    先登录sealos创建数据库,可以创建个pgsql:再到模版市场启动dbgate:配置数据库的连接信息,即可搞定收工sealos以kubernetes为内核的云操作系统发行版,让云原生简单普及laf写代码像写博客一样简单,什么dockerkubernetes统统不关心,我只关心写业务!......
  • Mysql8忽略大小写的解决方案
    ​一、删除服务器数据文件由于8.0没法设置参数后重启(失败),所以必须删掉老库,重新启动才行。切记:;本步骤要删掉老库所有资料,如果是数据库当前有用,请做好备份,再进行操作。systemctlstopmysqldcd/var/lib/mysql默认数据在这里rm-rf*二、添加配置,大小写不敏感vim/etc/m......
  • mysql5.7 大量sleep连接解决方法
    showprocesslist查看发现有大量sleep进程查看当前数据库设置的最大连接数showvariableslike'max_connections';如果是生产环境需要紧急处理的话,可以先临时扩大支持的最大连接数setglobalnax_connections=1000;但是这个并不能永久性解决这个问题查看系统设置的wai......
  • MYSQL
    DB:“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。DB类型关系数据库:MySQL,Oracle数据库非关系型数据库:BigTable(Google)DBA:数据库管理员DBMS:数据库管理系统:数据库管理系统(DatabaseMa......