美文网首页
mysql-存储引擎

mysql-存储引擎

作者: ssttIsme | 来源:发表于2023-05-08 16:31 被阅读0次

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

show crate table 表名;

ENGINE=就是引擎名

root@localhost:bank>show create table bank;
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                                       |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| bank  | CREATE TABLE `bank` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `address` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

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

SHOW ENGINES;
root@localhost:bank>show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)

Engine代表有哪些存储引擎、Support是否支持、Comment是注释、XA协议与Savepoints保存点与事务相关

InnoDB

介绍

InnoDB是一种兼顾高可靠性和高性能的存储引擎,在MySQL 5.5之后,InnoDB是默认的MySQL存储引擎。

特点-事务、外键、行级锁

DML操作遵循ACID模型,支持事务
行级锁,提高并发访问性能;
支持外键ROREIGN KEY约束,保证数据的完整性和正确性。

文件

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

root@localhost:bank>show variables like 'innodb_file_per_table';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_file_per_table | OFF   |
+-----------------------+-------+           

存储引擎特点

逻辑存储结构【>表示包含】:表空间Table>段Segment>Extent区>Page页>Row行

  • 页是磁盘操作的最小单元
  • 一个区的大小是固定是1M
  • 一个页的大小固定是16K
  • 一个区可以包含64个页

MyISAM

介绍

MyISAM是MySQL早期默认的存储引擎

特点-不支持事务、外键、表锁、访问速度快

不支持事务、不支持外键
支持标锁,不支持行锁
访问速度快

文件

sdi存储表结构、MYD存储数据、MYI存储索引

Memory

介绍

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

特点-内存存放访问速度快、哈希索引

内存存放
hash索引(默认)
表锁
不支持外键

文件

只有sdi存储表结构信息(数据都是存在内存中)

存储引擎特点

特点 InnoDB MyISAM Memory
存储限制 64TB
事务安全 支持 - -
锁机制 行锁 表锁 表锁
支持外键 支持 - -
B+tree索引 支持 支持 支持
Hash索引 - - 支持
全文索引 5.6版本后支持 支持 -
磁盘空间使用 -
内存使用 中等
批量插入速度

相关文章

  • MySQL-事务&MVCC

    前置文章:一、MySQL-存储引擎[https://www.jianshu.com/p/495108c767bc]...

  • mysql-存储引擎

    MRG_MYISAM CSV适用于写CSV日志文件,将结构化业务数据快速导入电子表格。CSV存储引擎以表格形式创建...

  • MySQL-存储引擎

    1、简介 类型Linux中的文件系统,比文件系统要高级 2、mysql中的存储引擎类型 InnoDB(5.5以后的...

  • mysql-存储引擎

    mysql可以将数据以不同的技术存储在文件(内存)中,这种技术就称为存储引擎 每一种存储引擎使用不同的存储机制、索...

  • mysql-存储引擎

    说到mysql,首先得先看看mysql支持的存储引擎。mysql支持的引擎很多,以下就常用的几种进行以下介绍。 I...

  • MySQL-存储引擎

    1. 存储引擎种类 1.1 介绍(Oracle MySQL) MySQL 5.5 之前,使用MyISAM引擎作为模...

  • mysql-存储引擎

    1、innodb 1.1、什么是事务及其特性 事务:是指程序中一系列严密的逻辑操作,而且所有操作必须全部完成,否则...

  • MySQL-存储引擎

    如果您对数据库感兴趣,可以添加 DBA解决方案QQ群:855439640 1、简介 2、功能了解 3、存储引擎种类...

  • MySQL-存储引擎

    概述 和大多数的数据库不同,MySQL中有一个存储引擎的概念,针对不同的存储需求可以选择最优的存储引擎。 存储引擎...

  • MySQL-存储引擎

    零、本文纲要 一、MySQL存储引擎 二、InnoDB存储引擎1、InnoDB逻辑存储结构2、InnoDB架构3、...

网友评论

      本文标题:mysql-存储引擎

      本文链接:https://www.haomeiwen.com/subject/scslsdtx.html