MySQL数据库之存储引擎

本文介绍了MySQL数据库的九种存储引擎,包括MyISAM、InnoDB、MEMORY等,并重点讲述了它们的特点、优缺点。了解了默认引擎InnoDB的事务支持和安全性,以及MEMORY引擎的高效查询。
查看当前版本数据库支持哪些存储引擎
show engines;	-- 查看数据库支持哪些存储引擎
select version();	-- 查看数据库版本
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.23    |
+-----------+
1 row in set (0.00 sec)


mysql支持九大存储引擎,默认存储引擎为InnoDB。

常用存储引擎介绍
1. MyISAM
  • MyISAM 存储引擎是MySQL最常用的引擎。
  • 它管理的表具有以下特征:
    1. 使用三个文件表示每个表
      1> 格式文件 ---- 存储表结构的定义(mytable.frm)
      2> 数据文件 ---- 存储表行的内容(mytable.MYD)
      3> 索引文件 ---- 存储表上索引(mytable.MYI)
    2. 灵活的 AUTO_INCREMENT字段处理
    3. 优点:由于表的格式、数据和索引都是一个个文件,所以可被转换为压缩、只读表来节省空间
    4. 缺点:不支持事务,安全性低。
2. InnoDB
  • InnoDB 存储引擎是MySQL的默认存储引擎,也是一个重量级存储引擎。
  • 它管理的表具有下列主要特征:
    1. 最主要的特点就是非常安全
    2. 每个InnoDB 表在数据库目录中以 .frm 格式文件表示
    3. InnoDB 表空间 tablespace 被用于存储表的内容(表空间存储数据及索引)
    4. 提供一组用来记录事务性活动的日志文件
    5. 用 COMMIT、SAVEPOINT 及 ROLLBACK 支持事务处理,以保证数据的安全。
    6. 提供全 ACID 兼容
    7. 在 MySQL 服务器崩溃后提供自动恢复
    8. 多版本并发控制(MVCC)来支持高并发和行级锁定
    9. 缺点:效率较低。不能压缩和转换为只读,不能很好的节省存储空间
3. MEMORY
  • 使用 MEMORY 存储引擎的表,其数据存储在内存中,且行的长度固定,这两点使 MEMORY 存储引擎非常快。
  • 它管理的表具有以下特征:
    1. 在数据库目录内,每个表均已 .frm 格式的 文件表示
    2. 表数据及索引被存储在内存中。
    3. 表级锁机制
    4. 不能包含 TEXT 或 BLOB 字段
    5. 优点:查询效率最高
    6. 缺点:不安全,关机后数据消失
  • MEMORY存储引擎以前被称为 HEAP 引擎。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值