第 4 章 · 第一节 · 课件第 1、2 页
第 4 章 数据库的创建和管理
数据怎样存,文字用什么编码存,以及怎样建立数据库。

分清楚
| 内容 | 在哪一节 |
|---|---|
| 存储引擎 | 第一节 |
| 字符集与校对规则 | 第二、三节 |
| 创建和管理数据库 | 第四节 |
重 点
建库时指定字符集和校对规则。建表时可以指定存储引擎,一般用默认的 InnoDB。
数据怎样存,文字用什么编码存,以及怎样建立数据库。

| 内容 | 在哪一节 |
|---|---|
| 存储引擎 | 第一节 |
| 字符集与校对规则 | 第二、三节 |
| 创建和管理数据库 | 第四节 |
建库时指定字符集和校对规则。建表时可以指定存储引擎,一般用默认的 InnoDB。
存储引擎决定数据怎样存储、怎样建索引、怎样查询。
SHOW ENGINES;查看默认的存储引擎
SHOW VARIABLES LIKE '%storage_engine%';设置默认的存储引擎
SET default_storage_engine = InnoDB;
| Variable_name | Value |
|---|---|
| default_storage_engine | InnoDB |
| default_tmp_storage_engine | InnoDB |
| disabled_storage_engines | |
| internal_tmp_mem_storage_engine | TempTable |
七种存储引擎各有特点,适合不同的用途。
| 存储引擎 | 主要特点 | 典型用途 |
|---|---|---|
| InnoDB | 支持事务、外码和行级锁,崩溃后能自动恢复 | 电商、银行等需要事务的系统 |
| MyISAM | 查询速度快,不支持事务和外码,只有表级锁 | 以读为主的网站、日志统计 |
| MEMORY | 数据存储在内存中,速度快,重启后数据丢失 | 临时表、统计的中间结果 |
| MERGE | 把多个结构相同的 MyISAM 表合成一个逻辑表 | 按月分表存放的日志,合起来查询 |
| BLACKHOLE | 写入的数据立即丢弃,不保存任何数据 | 验证语句的语法,测试二进制日志 |
| CSV | 数据以 CSV 文件存储,不支持索引 | 与其他软件交换数据,导出报表 |
| ARCHIVE | 高压缩比存储,只能插入和查询 | 保存很少访问的历史数据 |
| 要求 | 选哪一种 |
|---|---|
| 需要事务 | InnoDB |
| 以查询为主 | MyISAM |
| 临时数据 | MEMORY |
| 历史数据 | ARCHIVE |
InnoDB 是默认的存储引擎,支持事务和外码。

InnoDB 支持提交、回滚和崩溃修复,第 9 章的事务要用 InnoDB 表。
MyISAM 查询快但不支持事务,MEMORY 的数据在内存中。
把统计的中间结果放在 MEMORY 表中,重启后还在吗?
根据是否需要事务、读写的比例和数据的安全来选择。

没有特别的理由,就用默认的 InnoDB。