当前位置: 首页 > news >正文

Mysql Day04

mysql体系结构

  • 连接层
  • 服务层
  • 引擎层(索引)
  • 存储层

存储引擎

存储引擎是基于表建立的,默认是innoDB

show create table tb;

查看当前数据库支持的存储引擎

show engines;

InnoDB

特点

  • DML(数据增删改)遵循ACID模型,支持事务
  • 行级锁,提高并发访问性能
  • 支持外键约束,保证数据的完整性和正确性

每一张表对应一个ibd文件,在cmd中可以通过ibd2sdi  xxx.ibd查看表结构,返回json数据格式

逻辑存储结构

MyISAM

特点

  • 不支持事务,不支持外键
  • 支持表锁,不支持行锁
  • 访问速度快

每一张表对应一个MYD、MYI、sdi文件

Memory

特点

  • 内存存放、hash索引

每一张表对应一个sdi文件

索引

索引是一种用于高校搜索数据的有序数据结构

索引结构

  • B树

  • B+树

所有的元素都出现在叶子结点中

叶子结点形成一个链表

  • hash

hash索引只能用于对等操作,不能用于范围查询

无法利用索引完成排序操作 

  • r-tree

  • full-text

为什么innoDB选择b+树作为存储结构?

  • 相对于二叉树,层数较少,查询效率高
  • 相对B-tree,无论是叶子节点还是非叶子节点,都会保存数据,这样导致一页中存储的键值减少,指针跟着减少,要同样保存大量数据,只能增加树的高度,导致性能降低
  • 相对Hash索引,B+tree支持范围匹配及排序操作

索引分类

主键索引

唯一索引

常规索引

全文索引

聚集索引

  • 有主键,主键索引就是聚集索引,叶子结点挂的数据就是这一行的数据

二级索引

  • 叶子结点挂的数据是对应的id值
  • 回表查询,先从二级索引拿到主键值,再从聚集索引找到对应的值

索引语法

create [unique][fulltext] index index_name on tablename(index_col_name);show index from table_name;drop index index_name on table_name;

相关文章:

  • Java 使用 ant.jar 执行 SQL 脚本文件
  • ruoyi若依框架SpringSecurity实现分析
  • 基于NSGA-II的深度迁移学习
  • 零基础学编程从入门到精通,系统化的编程视频教程上线,中文编程开发语言工具构件之缩放控制面板构件用法
  • MySQL数据库基础与SELECT语句使用梳理
  • 骨科器械行业分析:市场规模为360亿元
  • [缓存] - Redis
  • ClickHouse--01--简介
  • [高性能] - 缓存架构
  • AJAX——认识URL
  • 风行智能电视N39S、N40 强制刷机升级方法,附刷机升级数据MstarUpgrade.bin
  • MATLAB语音去噪系统
  • Stable Diffusion 模型下载:RealCartoon-Realistic - V13
  • spring boot(2.4.x之前版本)和spring cloud项目中配置文件的作用
  • 【证书管理】实验报告
  • (三)从jvm层面了解线程的启动和停止
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 2017-09-12 前端日报
  • C++入门教程(10):for 语句
  • Idea+maven+scala构建包并在spark on yarn 运行
  • JSONP原理
  • leetcode-27. Remove Element
  • node和express搭建代理服务器(源码)
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • React+TypeScript入门
  • redis学习笔记(三):列表、集合、有序集合
  • Web设计流程优化:网页效果图设计新思路
  • 好的网址,关于.net 4.0 ,vs 2010
  • 数据科学 第 3 章 11 字符串处理
  • 学习JavaScript数据结构与算法 — 树
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 怎样选择前端框架
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • ​Linux·i2c驱动架构​
  • #LLM入门|Prompt#3.3_存储_Memory
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (备忘)Java Map 遍历
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (十八)SpringBoot之发送QQ邮件
  • (转)h264中avc和flv数据的解析
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • ./configure,make,make install的作用
  • .net core 6 集成和使用 mongodb
  • .Net Remoting(分离服务程序实现) - Part.3
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .net 流——流的类型体系简单介绍
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .netcore如何运行环境安装到Linux服务器
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • @EnableAsync和@Async开始异步任务支持
  • [ Linux ] git工具的基本使用(仓库的构建,提交)