特点 | Myism | InnoDB | Memory | Archive |
---|---|---|---|---|
批量插入的速度 | 高 | 底 | 高 | 非常高 |
事务安全 | 支持 | |||
全文索引 | 支持 | |||
锁机制 | 表锁 | 行锁 | 表锁 | 行锁 |
存储限制 | 没有 | 64TB | 有 | 没有 |
B树索引 | 支持 | 支持 | 支持 | |
哈希索引 | 支持 | 支持 | ||
集群索引 | 支持 | |||
数据缓存 | 支持 | 支持 | ||
索引缓存 | 支持 | 支持 | 支持 | |
数据可压缩 | 支持 | 支持 | ||
空间使用 | 底 | 高 | N/A | 底 |
内存使用 | 底 | 高 | 中等 | 底 |
支持外键 | 支持 |
重点介绍三种:MyISAM、InnoDB、MEMORY
-- 查看所有的存储引擎
SHOW ENGINES
-- innodb 存储引擎,是前面使用过
-- 1.支持事务 2.支持外键 3.支持行级锁
-- myisam 存储引擎
CREATE TABLE t28(
id INT,
`name` VARCHAR(32)) ENGINE MYISAM
-- 1.添加速度快 2.不支持外键和事务 3.支持表级锁
START TRANSACTION
SAVEPOINT t1
INSERT INTO t28 VALUES(1,'jack');
SELECT *FROM t28
ROLLBACK TO t1 -- 没有回滚成功
-- memory 存储引擎
-- 1.数据存储在内存中[关闭mysql服务,数据丢失,但是表结构还在]
-- 2.执行速度很快(没有IO读写) 3.默认支持索引(hash表)
CREATE TABLE t29(
id INT,
`name` VARCHAR(32)) ENGINE MEMORY
INSERT INTO t29
VALUES(1,'tom'),(2,'jack'),(3,'frx')
SELECT *FROM t29
-- 修改存储引擎
ALTER TABLE t29 ENGINE =INNODB