MySQL高级篇(存储引擎InnoDB、MyISAM、Memory)

news2025/1/24 17:50:47

目录

1、存储引擎简介

1.1、查询建表语句,默认存储引擎:InnoDB

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

1.3、创建表,并指定存储引擎

2、 存储引擎-InnoDB介绍

2.1、存储引擎特点

 3、MyISAM存储引擎

 4、Memory存储引擎

 5、InnoDB、MyISAM、Memory的区别

 6、存储引擎的选择


1、存储引擎简介

1.1、查询建表语句,默认存储引擎:InnoDB

-- 查询建表语句
show create table emp;

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

-- 查看当前数据库支持的存储引擎
show engines;

1.3、创建表,并指定存储引擎

-- 创建表 my_myisam,并指定MYISAM存储引擎
create table my_myisam
(
    id   int,
    name varchar(10)
) engine = MyISAM;

-- 创建表 my_memory,指定MEMORY存储引擎
create table my_memory
(
    id   int,
    name varchar(10)
) engine = MEMORY;

2、 存储引擎-InnoDB介绍

2.1、存储引擎特点

  • 介绍:InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在MySQL 5.5之后,InnoDB是默认的MySQL存储引擎。
  • 特点:DML操作遵循ACID 原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)模型,支持 事务行级锁,提高并发访问性能;支持 外键 FOREIGN KEY约束,保证数据的完整性和正确性;
  • 文件:xxx.ibd:xxx代表的是表名,InnoDB引擎的每张表都会对应这样一个表空间文件,存储该表的表结构(frm、sdi)、数据和索引。参数:innodb_file_per_table
  • 在InnoDB存储引擎中,.ibd文件是表空间文件,用于存储表的数据和索引。每个InnoDB表都有一个与之关联的.ibd文件(除非该表被配置为使用共享表空间)。.ibd文件通常包含表的元数据、数据和索引信息。

    当InnoDB存储引擎的innodb_file_per_table配置选项被启用时,每个InnoDB表都会有自己独立的.ibd文件。这样做的好处是,可以更容易地管理单个表的大小和存储位置,例如,可以通过移动或删除.ibd文件来移动或删除表。

    .ibd文件相对应的是.frm文件,它存储了表的元数据(即表结构)。而InnoDB的系统表空间文件通常命名为ibdata1ibdata2等,用于存储undo日志、插入缓冲区、锁信息等。

    在某些情况下,例如当表损坏或需要优化时,可能需要直接操作.ibd文件。但是,直接操作这些文件是危险的,应该谨慎进行,并在操作前备份相关数据。

show variables like 'innodb_file_per_table';

C:\ProgramData\MySQL\MySQL Server 8.0\Data

Microsoft Windows [版本 10.0.19045.3996]
(c) Microsoft Corporation。保留所有权利。

C:\ProgramData\MySQL\MySQL Server 8.0\Data\mybatis@002dexample>ibd2sdi t_book.ibd
["ibd2sdi"
,
{
        "type": 1,
        "id": 441,
        "object":
                {
    "mysqld_version_id": 80026,
    "dd_version": 80023,
    "sdi_version": 80019,
    "dd_object_type": "Table",
    "dd_object": {
        "name": "t_book",
        "mysql_version_id": 80026,
        "created": 20231209065441,
        "last_altered": 20231209065441,
        "hidden": 1,
        "options": "avg_row_length=0;encrypt_type=N;key_block_size=0;keys_disabled=0;pack_record=1;stats_auto_recalc=0;stats_sample_pages=0;",
        "columns": [
            {
                "name": "bid",
                "type": 16,
                "is_nullable": false,
                "is_zerofill": false,
                "is_unsigned": false,
                "is_auto_increment": false,
                "is_virtual": false,
                "hidden": 1,
                "ordinal_position": 1,
                "char_length": 80,
                "numeric_precision": 0,
                "numeric_scale": 0,
                "numeric_scale_null": true,
                "datetime_precision": 0,
                "datetime_precision_null": 1,
                "has_no_default": true,
                "default_value_null": false,
                "srs_id_null": true,
                "srs_id": 0,
                "default_value": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                "default_value_utf8_null": true,
                "default_value_utf8": "",
                "default_option": "",
                "update_option": "",
                "comment": "",
                "generation_expression": "",
                "generation_expression_utf8": "",
                "options": "interval_count=0;",
                "se_private_data": "table_id=1162;",
                "engine_attribute": "",
                "secondary_engine_attribute": "",
                "column_key": 2,
                "column_type_utf8": "varchar(20)",
                "elements": [],
                "collation_id": 255,
                "is_explicit_collation": false
            },
            {
                "name": "bname",
                "type": 16,
                "is_nullable": true,
                "is_zerofill": false,
                "is_unsigned": false,
                "is_auto_increment": false,
                "is_virtual": false,
                "hidden": 1,
                "ordinal_position": 2,
                "char_length": 80,
                "numeric_precision": 0,
                "numeric_scale": 0,
                "numeric_scale_null": true,
                "datetime_precision": 0,
                "datetime_precision_null": 1,
                "has_no_default": false,
                "default_value_null": true,
                "srs_id_null": true,
                "srs_id": 0,
                "default_value": "",
                "default_value_utf8_null": true,
                "default_value_utf8": "",
                "default_option": "",
                "update_option": "",
                "comment": "",
                "generation_expression": "",
                "generation_expression_utf8": "",
                "options": "interval_count=0;",
                "se_private_data": "table_id=1162;",
                "engine_attribute": "",
                "secondary_engine_attribute": "",
                "column_key": 1,
                "column_type_utf8": "varchar(20)",
                "elements": [],
                "collation_id": 255,
                "is_explicit_collation": false
            },
            {
                "name": "stuid",
                "type": 16,
                "is_nullable": true,
                "is_zerofill": false,
                "is_unsigned": false,
                "is_auto_increment": false,
                "is_virtual": false,
                "hidden": 1,
                "ordinal_position": 3,
                "char_length": 80,
                "numeric_precision": 0,
                "numeric_scale": 0,
                "numeric_scale_null": true,
                "datetime_precision": 0,
                "datetime_precision_null": 1,
                "has_no_default": false,
                "default_value_null": true,
                "srs_id_null": true,
                "srs_id": 0,
                "default_value": "",
                "default_value_utf8_null": true,
                "default_value_utf8": "",
                "default_option": "",
                "update_option": "",
                "comment": "",
                "generation_expression": "",
                "generation_expression_utf8": "",
                "options": "interval_count=0;",
                "se_private_data": "table_id=1162;",
                "engine_attribute": "",
                "secondary_engine_attribute": "",
                "column_key": 4,
                "column_type_utf8": "varchar(20)",
                "elements": [],
                "collation_id": 255,
                "is_explicit_collation": false
            },
            {
                "name": "DB_TRX_ID",
                "type": 10,
                "is_nullable": false,
                "is_zerofill": false,
                "is_unsigned": false,
                "is_auto_increment": false,
                "is_virtual": false,
                "hidden": 2,
                "ordinal_position": 4,
                "char_length": 6,
                "numeric_precision": 0,
                "numeric_scale": 0,
                "numeric_scale_null": true,
                "datetime_precision": 0,
                "datetime_precision_null": 1,
                "has_no_default": false,
                "default_value_null": true,
                "srs_id_null": true,
                "srs_id": 0,
                "default_value": "",
                "default_value_utf8_null": true,
                "default_value_utf8": "",
                "default_option": "",
                "update_option": "",
                "comment": "",
                "generation_expression": "",
                "generation_expression_utf8": "",
                "options": "",
                "se_private_data": "table_id=1162;",
                "engine_attribute": "",
                "secondary_engine_attribute": "",
                "column_key": 1,
                "column_type_utf8": "",
                "elements": [],
                "collation_id": 63,
                "is_explicit_collation": false
            },
            {
                "name": "DB_ROLL_PTR",
                "type": 9,
                "is_nullable": false,
                "is_zerofill": false,
                "is_unsigned": false,
                "is_auto_increment": false,
                "is_virtual": false,
                "hidden": 2,
                "ordinal_position": 5,
                "char_length": 7,
                "numeric_precision": 0,
                "numeric_scale": 0,
                "numeric_scale_null": true,
                "datetime_precision": 0,
                "datetime_precision_null": 1,
                "has_no_default": false,
                "default_value_null": true,
                "srs_id_null": true,
                "srs_id": 0,
                "default_value": "",
                "default_value_utf8_null": true,
                "default_value_utf8": "",
                "default_option": "",
                "update_option": "",
                "comment": "",
                "generation_expression": "",
                "generation_expression_utf8": "",
                "options": "",
                "se_private_data": "table_id=1162;",
                "engine_attribute": "",
                "secondary_engine_attribute": "",
                "column_key": 1,
                "column_type_utf8": "",
                "elements": [],
                "collation_id": 63,
                "is_explicit_collation": false
            }
        ],
        "schema_ref": "mybatis-example",
        "se_private_id": 1162,
        "engine": "InnoDB",
        "last_checked_for_upgrade_version_id": 0,
        "comment": "",
        "se_private_data": "",
        "engine_attribute": "",
        "secondary_engine_attribute": "",
        "row_format": 2,
        "partition_type": 0,
        "partition_expression": "",
        "partition_expression_utf8": "",
        "default_partitioning": 0,
        "subpartition_type": 0,
        "subpartition_expression": "",
        "subpartition_expression_utf8": "",
        "default_subpartitioning": 0,
        "indexes": [
            {
                "name": "PRIMARY",
                "hidden": false,
                "is_generated": false,
                "ordinal_position": 1,
                "comment": "",
                "options": "flags=0;",
                "se_private_data": "id=289;root=4;space_id=101;table_id=1162;trx_id=10390;",
                "type": 1,
                "algorithm": 2,
                "is_algorithm_explicit": false,
                "is_visible": true,
                "engine": "InnoDB",
                "engine_attribute": "",
                "secondary_engine_attribute": "",
                "elements": [
                    {
                        "ordinal_position": 1,
                        "length": 80,
                        "order": 2,
                        "hidden": false,
                        "column_opx": 0
                    },
                    {
                        "ordinal_position": 2,
                        "length": 4294967295,
                        "order": 2,
                        "hidden": true,
                        "column_opx": 3
                    },
                    {
                        "ordinal_position": 3,
                        "length": 4294967295,
                        "order": 2,
                        "hidden": true,
                        "column_opx": 4
                    },
                    {
                        "ordinal_position": 4,
                        "length": 4294967295,
                        "order": 2,
                        "hidden": true,
                        "column_opx": 1
                    },
                    {
                        "ordinal_position": 5,
                        "length": 4294967295,
                        "order": 2,
                        "hidden": true,
                        "column_opx": 2
                    }
                ],
                "tablespace_ref": "mybatis-example/t_book"
            },
            {
                "name": "fk_book_stuid",
                "hidden": false,
                "is_generated": true,
                "ordinal_position": 2,
                "comment": "",
                "options": "flags=0;",
                "se_private_data": "id=290;root=5;space_id=101;table_id=1162;trx_id=10390;",
                "type": 3,
                "algorithm": 2,
                "is_algorithm_explicit": false,
                "is_visible": true,
                "engine": "InnoDB",
                "engine_attribute": "",
                "secondary_engine_attribute": "",
                "elements": [
                    {
                        "ordinal_position": 1,
                        "length": 80,
                        "order": 2,
                        "hidden": false,
                        "column_opx": 2
                    },
                    {
                        "ordinal_position": 2,
                        "length": 4294967295,
                        "order": 2,
                        "hidden": true,
                        "column_opx": 0
                    }
                ],
                "tablespace_ref": "mybatis-example/t_book"
            }
        ],
        "foreign_keys": [
            {
                "name": "fk_book_stuid",
                "match_option": 1,
                "update_rule": 1,
                "delete_rule": 1,
                "unique_constraint_name": "PRIMARY",
                "referenced_table_catalog_name": "def",
                "referenced_table_schema_name": "mybatis-example",
                "referenced_table_name": "t_stu",
                "elements": [
                    {
                        "column_opx": 2,
                        "ordinal_position": 1,
                        "referenced_column_name": "sid"
                    }
                ]
            }
        ],
        "check_constraints": [],
        "partitions": [],
        "collation_id": 255
    }
}
}
,
{
        "type": 2,
        "id": 106,
        "object":
                {
    "mysqld_version_id": 80026,
    "dd_version": 80023,
    "sdi_version": 80019,
    "dd_object_type": "Tablespace",
    "dd_object": {
        "name": "mybatis-example/t_book",
        "comment": "",
        "options": "autoextend_size=0;encryption=N;",
        "se_private_data": "flags=16417;id=101;server_version=80026;space_version=1;state=normal;",
        "engine": "InnoDB",
        "engine_attribute": "",
        "files": [
            {
                "ordinal_position": 1,
                "filename": ".\\mybatis@002dexample\\t_book.ibd",
                "se_private_data": "id=101;"
            }
        ]
    }
}
}
]

C:\ProgramData\MySQL\MySQL Server 8.0\Data\mybatis@002dexample>

 3、MyISAM存储引擎

  • 介绍:MyISAM是MySQL早期的默认存储引擎
  • 特点:不支持事务,不支持外键;支持表锁,不支持行锁;访问速度快
  • 文件:xxx.sdi:存储表结构信息;xxx.MYD:存储数据;xxx.MYI:存储索引

https://www.json.cn/

 

 4、Memory存储引擎

  • 介绍:Memory引擎的表数据时存储在内存中的,由于受到硬件问题、或断电问题的影响,只能将这些表作为临时表或缓存使用。
  • 特点:内存存放;hash索引(默认)
  • 文件:xxx.sdi:存储表结构信息

 5、InnoDB、MyISAM、Memory的区别

 6、存储引擎的选择

  • InnoDB用于大多数业务场景
  • MyISAM用于业务系统中的日志相关的数据,电商当中足迹和评论相关的数据,已经被 MongoDB 取代
  • MEMORY用于缓存,已经被 redis 取代

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

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

相关文章

AcWing刷题-公约数

公约数 代码 from math import gcd a, b map(int, input().split()) p int(input()) max_gcd gcd(a, b) res []for i in range(1, int(max_gcd**0.5)1):if max_gcd % i 0:res.append(i) res.append(max_gcd//i) res sorted(set(res))for _ in range(p):l, r map(int,…

【ArcGIS微课1000例】0108:ArcGIS计算归一化差值植被指数

本文讲解ArcGIS中,基于Landsat8数据的NDVI归一化差值植被指数计算。 文章目录 一、加载数据二、归一化植被指数NDVI1. NDVI介绍2. NDVI计算三、注意事项一、加载数据 加载配套数据0108.rar中的Landsat8的8个单波段数据,如下所示: Landsat8波段信息对照表如下表所示: 接下来…

8.排序(直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序)的模拟实现

1.排序的概念及其运用 1.1排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录…

怎么保证缓存与数据库的最终一致性?

目录 零.读数据的标准操作 一.Cache aside Patten--旁路模式 二.Read/Write Through Pattern--读写穿透 三.Write Back Pattern--写回 四.运用canal监听mysql的binlog实现缓存同步 零.读数据的标准操作 这里想说的是不管哪种模式读操作都是一样的,这是一种统一…

MongoDB初探:安装与图形化界面保姆级使用指南

文章目录 前言一、MongoDB下载安装下载解压配置环境变量打开mongoDB 二、配置本地MongoDB服务创建文件下载服务测试服务 三、图形化界面Compass GUINavicat GUI 总结 前言 MongoDB是一种流行的开源、面向文档的NoSQL数据库程序。与传统的关系型数据库不同,MongoDB将…

微信小程序备案指南及注意事项

如何备案小程序? 原文可参考: 微信小程序备案指南及注意事项 注意:备案需要提前准备好以下材料; 身份证正反面照片(必须);营业执照照片(非个人主体需要); 一…

非机构化解析【包含PDF、word、PPT】

此项目是针对PDF、docx、doc、PPT四种非结构化数据进行解析,识别里面的文本和图片。 代码结构 ├── Dockerfile ├── requirements ├── resluts ├── test_data │ ├── 20151202033304658.pdf │ ├── 2020_World_Energy_Data.pdf │ ├── …

AI大模型下的策略模式与模板方法模式对比解析

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》《MYSQL应用》 💪🏻 制定明确可量化的目标,坚持默默的做事。 🚀 转载自热榜文章:设计模式深度解析:AI大模型下…

【C++入门】缺省参数、函数重载与引用

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

Severt和tomcat的使用(补充)

打包程序 在pom.xml中添加上述代码之后打包时会生成war包并且包的名称是test 默认情况打的是jar包.jar里量但是tomcat要求的是war包. war包Tomcat专属的压缩包. war里面不光有.class还有一些tomcat要求的配置文件(web.xml等)还有前端的一些代码(html, css, js) 点击其右边的m…

WPS二次开发系列:WPS SDK实现文档打印功能

在办公场景或者家教场景中经常碰到需要对文档进行打印的能力,今天给大家带来一篇如何通过WPS SDK调用WPS打印接口实现文档打印能力 最终实现效果图 实现步骤 2.1. 申请集成资料 通过向WPS官方发送邮件申请,审批通过后即可获取集成相关资料,详…

数据备份的演变:数字时代的一个关键方面

微信关注获取更多内容 数据备份至关重要,涵盖了其过去、现在和未来,是数字时代任何企业运营的一个重要方面。 如今,公司运营的几乎每个方面,从客户信息到内部财务数据,都以数字方式存储。 有鉴于此,数据…

视频压缩软件都有哪些?分享4款专业的视频软件!

在数字化时代,视频已经成为我们生活中不可或缺的一部分。然而,随着视频质量的不断提升,其占用的存储空间也在迅速增长。为了解决这个问题,视频压缩软件应运而生。本文将为您介绍几款热门的视频压缩软件,帮助您选择最适…

后端nginx使用set_real_ip_from获取用户真实IP

随着nginx的迅速崛起,越来越多公司将apache更换成nginx. 同时也越来越多人使用nginx作为负载均衡, 并且代理前面可能还加上了CDN加速,但是随之也遇到一个问题:nginx如何获取用户的真实IP地址. 前言:Nginx ngx_http_realip_module…

JVM—对象的创建流程与内存分配

JVM—对象的创建流程与内存分配 创建流程 对象创建的流程图如下: 对象的内存分配方式 内存分配的方式有两种: 指针碰撞(Bump the Pointer)空闲列表(Free List) 分配方式说明收集器指针碰撞&#xff08…

flutter升级3.10.6Xcode构建报错

flutter sdk 升级Xcode报错收集,错误信息如下: Error (Xcode): Cycle inside Runner; building could produce unreliable results.没问题版本信息: Xcode:15.3 flutter sdk :3.7.12 dart sdk:2.19.6 …

hadoop分布式计算组件

什么是计算、分布式计算? 计算:对数据进行处理,使用统计分析等手段得到需要的结果 分布式计算:多台服务器协同工作,共同完成一个计算任务 分布式计算常见的2种工作模式 分散->汇总(MapReduce就是这种模式)中心调…

《价值》-张磊-高瓴资本-5-投资是一场修行;坚持第一性原理;避开陷阱;信誉就是生命

第五章:价值投资者的自我修养 价值投资不是投资者之间的零和游戏,而是共同把蛋糕做大的正和游戏。 从事投资的过程中,我渐渐发觉,投资 一方面是对真理的探寻,探索外部世界;另一方面是谋求心灵的宁静&#x…

Java: LinkedList的模拟实现

一、双向链表简介 上一篇文章我介绍了单向链表的实现,单向链表的特点是:可以根据上一个节点访问下一个节点!但是,它有个缺点,无法通过下一个节点访问上一个节点!这也是它称为单向链表的原因。 那么&#x…

K8S - Service简介和 1个简单NodePort例子

大纲图 流量方向 如上图, 当用户or 别的service 从k8s 集群外部访问 集群内的services 流量方向有两种 一种是垂直方向, 通过域名 -> Load Balancer -> gateway -> services , 在k8s 一般是通过ingress 来实现, 而ingress 不是本文…