Mysql存储引擎、字符集
1. 存储引擎
| MyISAM: | 早期的默认存储引擎,占用资源较少,读取数据快。但是不支持事务和行级锁,无外键约束等特性。 |
| InnoDB: | 从MySQL5.5版本开始,默认的存储引擎由MyISAM改为InnoDB。支持ACID事务特性和行级锁,实现了SQL标准的四种隔离级别,支持外键约束。 |
| CSV: | .csv为拓展名的纯文本文件。 |
| MEMORY: | 存储在内存中,断电丢失。目前主流内存存储引擎是Redis。 |
| ARCHIVE: | 只支持INSERT和SELECT操作,用于大量历史数据、日志等只需读取的应用场景。 |
| PERFORMANCE_SCHEMA: | |
| MRG_MYISAM: | 该存储引擎将多个结构相同的MyISAM表组一个逻辑表,从而方便统一查询管理,很适合大量分区表进行统一操作场景。 |
| BLACKHOLE: | 所有插入到该表的数据都会被抛弃。性能测试、可以验证存储文件的语法 |
| 特点 | InnoDB | MyISAM | MEMORY | MERGE |
|---|---|---|---|---|
| 存储限制 | 64TB | ✔ | ✔ | |
| 事务安全 | ✔ | |||
| 锁机制 | 行锁 | 表锁 | 表锁 | 表锁 |
| BTREE 索引 | ✔ | ✔ | ✔ | ✔ |
| HASH 索引 | ✔ | |||
| 全文索引 | ✔ | |||
| 集群索引 | ✔ | |||
| 数据缓存 | ✔ | ✔ | ||
| 索引缓存 | ✔ | ✔ | ✔ | ✔ |
| 数据可压缩 | ✔ | |||
| 空间使用 | 高 | 低 | 低 | |
| 内存使用 | 高 | 低 | 中等 | 低 |
| 批量插入速度 | 低 | 高 | 高 | 高 |
| 支持外键 | ✔ |
2. 字符集
字符:
字符集:字符的集合。GB2312收录7445个字符。
编码:把字符集中的字符【编码为】(映射)字节序列。
解码:
以前字符集只有一种编码方式(一对一)。ASCII字符集&编码。
但是,Unicode是字符集,UTF编码(一对多),UTF-32/ UTF-16/ UTF-8是三种字符编码方案。
编码时使用的字符集,和解码时使用的字符集必须一致,否则会出现乱码。
ASCII字符集:只有英文、数字、符号等,占一个字节(8位)。
GBK字符集:汉字占2个字节,英文、数字占1个字节。
UTF-8字符集:汉字占3个字节,英文、数字占1个字节。
armscii8
ascii
big5
binary
UTF-32
UTF-8(用这个)

浙公网安备 33010602011771号