MySQL的进阶篇1-MySQL的存储引擎简介

news2024/11/17 21:42:14

存储引擎

MySQL的体系结构

0、客户端连机器【java、Python、JDBC等】

1、【MySQL服务器-连接层】认证,授权,连接池

2、【MySQL服务器-服务层】 {SQL接口(DML、DDL、存储过程、触发器)、解析器、查询优化器、缓存}

3、【MySQL服务器-存储引擎层】{InnoDB、MyISAM、NDB、Archive。。。。可插拔式}

​ 控制的是MySQL当中数据存储和提取的方式,服务器会通过存储引擎和API进行通信和交互。

​ 【索引是在存储引擎层实现的,也就意味着不同的存储引擎,索引的结构是不一样的】

​ InnoDB是MySQL5.5版本之后默认的存储引擎。

4、【MySQL服务器-存储层】持久化到磁盘当中的文件和日志。

存储引擎简介

​ 引擎没有好坏之分,不同的场景使用不同的引擎。

​ 存储引擎是MySQL当中特有的,就是存储数据,建立索引,更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可以被称为表类型。

​ show create table user;

CREATE TABLE `user` (
  `user_id` int(11) NOT NULL,
  `username` varchar(60) DEFAULT NULL,
  `user_status` char(1) DEFAULT NULL,
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

show engines;

ENGINE=InnoDB DEFAULT CHARSET=utf8 指定存储引擎。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

存储引擎特点

1、InnoDB

​ 是一种兼顾高可靠性和高性能的通用存储引擎,在MySQL5.5之后,InnoDB是默认的MySQL存储引擎。

特点:

​ 1、DML操作遵循ACID模型,支持事务

​ 2、行级锁,提高并发访问性能。

​ 3、支持外键 Foreign key约束,保证数据完整性和准确性。

磁盘文件:

​ 每一个InnoDB表都会对应磁盘文件。

​ xxx.ibd:xxx代表的是表名,InnoDB引擎的每张表都会对应这样的一个表空间文件,存储该表的表结构(frm,sdi)、数据、和索引。

​ 参数:innodb_file_per_table

show variables like 'innodb_file_per_table';

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ibd2sdi emp.ibd 就会返回数据文件的json记录。

逻辑存储结构:

1、tablespace:表空间

2、segment:段

3、Extent:区,大小固定,为1M,可以包含64个页。

4、Page:页,大小固定,为16K

5、Row:行【再里边就包含事务id、指针、和列记录了 】

2、MyISAM

​ 是MySQL早期默认的存储引擎。

特点:

不支持事务、不支持行级锁、不支持外键

支持表锁,访问速度快

磁盘文件:

tb_book.MYD :数据

tb_book.MYI:索引

tb_book_448(序号自增).sdi:表结构

3、Memory

​ 表数据是存储在内存当中的,由于受到硬件问题、或断电问题的影响,只能将这些表作为临时表或缓存使用。

特点:

​ 由于放到内存中,访问速度快。

​ 支持hash索引(默认)

文件:

xxx.sdi:存储表结构信息,因为它的数据都是存储到内存中,所以不持久化到磁盘。

4、存储引擎特点-总结:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

存储引擎选择

InnoDB:对数据一致性要求较高;

MyISAM:读操作和插入操作为主。【日志和评论】

Memory:做缓存。但是内存大小有限制。

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

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

相关文章

C8051F020 SMBus一直处于busy状态解决办法

当SMBus总线处于busy状态切且无法自动释放时,SMB0CN寄存器的第7位一直为 1,总线没有释放。 SMBus总线释放超时的一个纠错机制,它允许SMBus状态机在 SDA 和 SCL 信号线同为高电平超过 10个SMBus时钟源周期后判断总线为释放状态。 如果总线释放…

Linux下gdb常规调试

Linux系统:ubuntu-20.04 gdb简介 gdb 全称“GNU symbolic debugger”,从名称上不难看出,它诞生于 GNU 计划(同时诞生的还有 GCC、Emacs 等),是 Linux 下常用的程序调试器。发展至今,GDB 已经迭…

代码随想录算法训练营day59|503.下一个更大元素II |42.接雨水

503.下一个更大元素II 力扣题目链接 给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数&#xff0c…

【面试必刷TOP101】 删除有序链表中重复的元素-I 删除有序链表中重复的元素-II

目录 题目:删除有序链表中重复的元素-I_牛客题霸_牛客网 (nowcoder.com) 题目的接口: 解题思路: 代码: 过啦!!! 题目:删除有序链表中重复的元素-II_牛客题霸_牛客网 (nowcoder…

CTF--攻防世界杂项--第二课

下载题目根据文件类型可知,这是一个流量包 那么接下来就是利用分析流量包常用的工具wireshark来分析 利用关键词进行搜索 http contains shell 在最后一条数据中看到了flag。 以上就结束,非常简单的一道题。

nginx相关漏洞处理:CVE-2016-2183、CVE-2022-41741、CVE-2022-41742

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、漏洞内容二、现状三、centos7安装openssl11四、升级nginx到1.24.01. 下载nginx2. 编译安装nginx3. 配置nginx.service4. 重启nginx 总结 前言 漏扫发现机器…

[maven] 使用 Nexus 管理 repository

[maven] 使用 Nexus 管理 repository 大概是说还有一篇笔记,两篇内容,maven 的内容就差不多过完了。这一篇笔记主要记一下 maven 的 central 管理部分,之前提到过我们公司用的就是 nexux 做了一个镜像,这里也会用 docker 去创建一…

力扣刷题-数组-滑动窗口法相关题目总结

209. 长度最小的子数组(最小滑窗) 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。 示例: 输入&…

uniapp确认提示框;uniapp判断输入框值是否符合正常手机号,身份证号

确认提示框 UniApp 中&#xff0c;你可以使用 uni.showModal 方法来创建确认提示框。以下是一个示例&#xff1a; <template><view class"container"><button click"showAuthModal">显示确认提示框</button></view> </…

react实现动态递增展示数字特效

在可视化展示界面时有一种场景&#xff0c;就是页面在初始化的时候&#xff0c;有些数字展示想要从某个值开始动态递增到实际值&#xff0c;形成一种动画效果。例如&#xff1a; 写一个数字递增的组件&#xff0c;代码如下&#xff1a; import {useEffect, useRef, useState} f…

软考网络工程师IPSEC VPN配置考点总结

IPSEC VPN&#xff08;华为&#xff09;工作流程 配置安全ACL&#xff1a;配置哪些流量需要被保护配置安全提议&#xff1a;配置IPsec的参数配置IKE&#xff1a;预共享密钥&#xff0c;配置身份验证方法、加密算法等安全参数配置安全策略&#xff1a;1和2做关联在接口应用安全…

文件系统之程序是怎么打开文件进行操作的

本篇文章自顶向下&#xff0c;从文件系统的上层出发讲到磁盘&#xff0c;帮助理解程序是如何打开文件并进行后序的读写操作的&#xff0c;读到后面&#xff0c;前面的一些疑惑就得到解决 介绍相关概念 注意&#xff0c;目录也是文件 文件描述符 每个进程都有一个指针*files…

Postman接口测试完整篇,全网唯一

前言 今天给大家分享的内容是接口测试必备的postman测试工具的使用&#xff1a;postman发送get与post请求&#xff0c;变量的设置与引用&#xff0c;文件的导入与导出&#xff0c;断言机制&#xff0c;参数化&#xff08;数据驱动&#xff09;&#xff0c;批量执行测试集&…

算法通关村 | 透彻理解动态规划

1. 斐波那契数列 1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;8&#xff0c;13&#xff0c;..... f(n) f(n-1) f(n-2) 代码实现 public static int count_2 0;public int fibonacci(int n){if (n < 2){count_2;return n;}int f1 1;int f2 2;i…

探索单链表数据结构:理解与实现

文章目录 &#x1f34b;引言&#x1f34b;什么是单链表&#xff1f;&#x1f34b;单链表的基本操作&#x1f34b;单链表的实现&#x1f34b;练习题&#x1f34b;总结 &#x1f34b;引言 在计算机科学和数据结构中&#xff0c;链表是一种基本且重要的数据结构&#xff0c;用于存…

基于springboot财务管理系统springboot006

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…

【zabbix监控三】zabbix之部署代理服务器

一、部署代理服务器 分布式监控的作用 分担server的几种式压力解决多机房之间的网络延时问题 1、搭建proxy主机 192.168.88.50 关闭防火墙和安全机制&#xff0c;修改主机名 设置 zabbix 的下载源&#xff0c;按照 zabbix-proxy rpm -ivh \ https://mirrors.aliyun.com/zab…

01-Maven入门

1 Maven简介 1.1 Maven是什么 Maven 是一个用于构建和管理 Java 项目的工具。它提供了一种标准化的项目结构和构建流程&#xff0c;可以自动化地处理项目的依赖管理、编译、测试、打包和部署等任务。 Maven 使用一个基于 XML 的配置文件&#xff08;pom.xml&#xff09;来描…

【C++面向对象侯捷】12.虚函数与多态 | 13.委托相关设计【设计模式 经典做法,类与类之间关联起来,太妙了,不断的想,不断的写代码】

文章目录 12.虚函数与多态举例&#xff1a;委托 继承【观察者模式】13.委托相关设计Composite 组合模式Prototype 原型模式 12.虚函数与多态 纯虚函数 一定要 子类重新定义的 继承和复合 关系下的构造和析构 举例&#xff1a;委托 继承【观察者模式】 13.委托相关设计 问题…

建材行业微信小程序开发实战经验分享

随着互联网的迅猛发展&#xff0c;电子商务成为了人们日常购物的主要方式之一。而微信小程序的兴起更是为商家提供了一个全新的线上销售渠道。在建筑材料选购领域&#xff0c;开发一个微信小程序商城平台能够有效地提升用户的购物体验和商家的销售效益。 为了实现建筑材料选购平…