查看mysql中所有存储引擎类型:
SHOW ENGINES;
查看数据库默认使用的存储引擎类型
SHOW VARIABLES LIKE 'storage_engine';
查看表的存储引擎类型
show table status from 数据库库名 where name='表名'
SHOW TABLE STATUS FROM library WHERE NAME='books';
MySQL常用的4种存储引擎
1、MyISAM存储引擎
索引:
和innoDB一样使用B + tree索引,但是在具体实现上有些不同
存储结构:静态型、动态型、压缩型
- 静态型:指定义的表列的大小是固定的,即不含有xblob、xtext、varchar等长度可变的类型,这样MySQL会自动使用静态MyISAM格式
优点:高性能
缺点:占用空间大 - 动态型:如果列(即使只有一列)定义为动态的,xblob、xtext、varchar等数据类型,这时MyISAM就自动使用动态型
优点:占用空间较小
缺点:性能低 - 压缩型:如果在数据库中创建在整个生命周期内只读的表,则应该使用MyISAM的压缩型表来减少空间的占用
优缺点:
优点:MyISAM的优点在于占用空间小,处理速度快,主要用于高负载的select
缺点:不支持事务,不支持行级锁,只支持并发插入的表锁
2、innoDB存储引擎
索引:B + tree
优缺点:
优点:提供良好的事务处理能力,崩溃修复能力和并发控制。支持自增长列、外键、行级锁。
缺点:读写效率较差,占用的数据空间相对较多
3、MEMORY存储引擎
存储方式:
使用存储在内存中的数据来创建表,而且所有的数据也都存储在内存中
索引:
MEMORY默认使用哈希(HASH)索引,速度比使用B型树索引快。如果想用B型树索引,可以在创建索引时指定。
优缺点:
优点:数据的处理速度快
缺点:memory存储引擎文件数据都存储在内存中,如果mysql进程发生异常,重启或关闭机器这些数据都会消失。所以memory存储引擎中的表的生命周期很短,一般只使用一次。
4、ARCHIVE存储引擎
优缺点:
优点:具有压缩功能,拥有高效的插入速度,适合存储大量独立的,作为历史记录的数据
缺点:不支持索引,查询性能较差
注意:
同一个数据库也可以使用多种存储引擎的表。如果一个表要求比较高的事务处理,可以选择InnoDB。这个数据库中可以将查询要求比较高的表选择MyISAM存储。如果该数据库需要一个用于查询的临时表,可以选择MEMORY存储引擎。