数据库原理与应用 第 4 章 · 第一节
课程第 4 章第一节 章首主要内容引擎概述查引擎默认引擎引擎对照InnoDBMyISAMMEMORY其他引擎怎么选 版式
第 4 章 数据库的创建和管理 · 第一节

MySQL 的存储引擎

七种引擎各管什么场景,默认的 InnoDB 好在哪里
本 节 知 识 点
  1. 01第 4 章 数据库的创建和管理
  2. 02本章主要内容
  3. 03存储引擎概述
  4. 04查看支持哪些存储引擎
  5. 05默认存储引擎与切换
  6. 06常用存储引擎对照
  7. 07InnoDB 存储引擎
  8. 08MyISAM 存储引擎
  9. 09MEMORY 存储引擎
  10. 10其他存储引擎
  11. 11存储引擎的选择
01
第 4 章 · 第一节

第 4 章 数据库的创建和管理

前三章讲道理,这一章第一次真的把库建出来。

第 1 页课件

知道更多本章三块

先看数据怎么存(存储引擎),再看文字怎么存(字符集),最后动手建库改库删库。

想一想

装好的 MySQL 里,一条数据到底躺在什么地方?

02
第 4 章 · 第一节

本章主要内容

三块内容,各回答一个问题。

第 2 页课件

分清楚

这一块回答什么
存储引擎一行数据怎么存怎么找
字符集汉字怎么存才不乱码
数据库管理建库、改库、删库

重 点

三块里最容易出事的是字符集,乱码问题全出在这一块。

03
第 4 章 · 第一节

存储引擎概述

存储引擎决定数据怎么存、索引怎么建、怎么查怎么改。

第 3 页课件

关键术语

存储引擎Storage Engine
底层真正负责存取数据的那个部件。

打个比方

同一批货,放货架、放冷库还是放保险柜,取货的规矩完全不一样。

上机做

上机第 1 题 看看支持哪些引擎

04
第 4 章 · 第一节

查看支持哪些存储引擎

一条 SHOW ENGINES,就能看见这台机器认得哪几种引擎。

第 4 页课件

重 点只看两列

Support 写 DEFAULT 的是默认引擎,Transactions 写 YES 的支持事务。

上机做

上机第 1 题 在终端里敲一遍

想一想

一个数据库为什么要准备好几种引擎?

05
第 4 章 · 第一节

默认存储引擎与切换

默认引擎是 InnoDB,一条 SET 就能换掉。

第 5 页课件

关键术语

默认存储引擎default_storage_engine
建表时不写 ENGINE,就用它。

重 点

换了默认引擎只影响之后新建的表,已经建好的表一动不动。

上机做

上机第 2 题 查当前默认引擎

想一想

建表时把 ENGINE 写清楚,和靠默认,哪个更稳妥?

06
第 4 章 · 第一节

常用存储引擎对照

七种引擎,先记住类比:银行、图书馆、内存仓库、黑洞。

第 6 页课件

试一试点一个场景,看该用谁

场景
选一个场景,看这张表该交给哪个引擎。

重 点

整张表最该看的是「典型用途」那一列,选引擎就是选场景。

想一想

学生选课系统的选课表,你会交给哪个引擎?

07
第 4 章 · 第一节

InnoDB 存储引擎

InnoDB 像银行,账做一半可以整笔撤销。

第 7 页课件

试一试转到一半断电会怎样

转账
张三给李四转 100 元
账户余额合计
张三500800
李四300
断电发生在扣款之后、到账之前,看两种引擎各是什么下场。

记牢它四个本事

  1. 支持事务
  2. 能回滚
  3. 认外键
  4. 行级锁

重 点

MySQL 5.5 以后 InnoDB 就是默认引擎,不特别说明都用它。

08
第 4 章 · 第一节

MyISAM 存储引擎

MyISAM 像图书馆,查得快,但不支持事务。

第 8 页课件

分清楚

InnoDBMyISAM
支持事务不支持事务
行级锁表级锁
有专门缓冲池靠操作系统
并发写得住以查询为主

重 点

5.5 之前 MyISAM 是默认引擎,接手老系统时还会碰到。

想一想

一个只发文章、几乎不改的新闻站,用哪个更划算?

09
第 4 章 · 第一节

MEMORY 存储引擎

MEMORY 把表放在内存里,快,但一断电就没了。

第 9 页课件

打个比方

像写在白板上,随手记随手擦,下班擦掉也不心疼。

重 点

只拿它放临时表、缓存和统计中间结果,正式数据不能放。

想一想

断电就没的表,为什么还有人愿意用?

10
第 4 章 · 第一节

其他存储引擎

剩下四种各管一件小事,知道名字和用途就够。

第 10 页课件

分清楚

引擎拿来干什么
MERGE多张 MyISAM 当一张查
BLACKHOLE写进去就丢,用来压测
CSV存成 Excel 能打开的文件
ARCHIVE压得很小,只进不改

打个比方

BLACKHOLE 像只测发球速度、不管球落哪,专门用来量数据库能扛多少。

想一想

写进去就丢的引擎,能拿来做什么?

11
第 4 章 · 第一节

存储引擎的选择

选引擎只问一句:这张表最怕什么。

第 11 页课件

记牢它四句口诀

  1. 要事务选 InnoDB
  2. 只查询选 MyISAM
  3. 图快选 MEMORY
  4. 存旧账选 ARCHIVE

练一练

网上商城的订单表应该用哪个存储引擎?
  1. AMyISAM
  2. BInnoDB
  3. CMEMORY
  4. DARCHIVE
答案 B

订单要付款、扣库存、能回滚,必须支持事务,只有 InnoDB 做得到。

重 点

拿不准就用 InnoDB,它是默认值,也是绝大多数业务的正确答案。

保山学院·人工智能教研室·曹鼎鼎