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

目录

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 取代
  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值