mysql有多种可选的存储引擎(storage engine), 可以在创建表时进行指定:
create table test(id int(10)) engine=innodb;
查看表指定的引擎
show table status\G
1. InnoDB
默认使用的引擎是innodb。支持行级锁,主码会使用聚簇索引,支持外码的完整性约束,支持事务。
支持B+树索引(尽管语法中我们看到BTREE,但实际上就是B+树,而不是B树)
不支持哈希索引
2. MyISAM
不支持事务,提供表级锁
支持B+树索引
不支持哈希索引
3.Memory
在内存中创建表,速度最快,提供表级锁,但数据库重启后数据会丢失
支持B+树索引
支持哈希索引
在建表时指定索引类型:
CREATE TABLE lookup
(id INT, INDEX USING HASH (id))
ENGINE = MEMORY;
CREATE TABLE lookup
(id INT, INDEX USING BTREE (id))
ENGINE = MEMORY;