MyISAM储存引擎的的特点
1、支持表压缩存放,一般用做数据仓库,能够节约存储空间。
2、每一个表使用三个文件来保存,这三个文件都位于存储目录下的指定数据库目录中。
tb_name.frm:表结构定义文件
tb_name.MYD:表数据文件,储存数据的
tb_name.MYI:表索引文件
3、支持表锁,读性能比InnoDB性能好,写性能不如InnoDB
4、支持FULLTEXT(全文)索引、空间索引、延迟更新索引
5、不支持事务、外键、行级锁
6、崩溃后无法安全恢复数据
使用场景:一般用于读多写少、表较小且可以忍受崩溃后修复操作和数据丢失
Innodb储存引擎的特点
1、InnoDB有2种存储方式
(1)、默认情况下,Innodb在储存表时是将多个表数据共享在一个表空间文件中。这种方式不容易维护表。该表空间文件位于存储目录(datadir指向的目录)中,文件名称为ibdata#。
如果使用这种存储方式,那么每个表也会有3个文件,分别是:
存储目录下的ibdata#:这是一个共享的表空间文件
tb_name.frm:表结构定义文件。位于存储目录的指定数据库目录下。
tb_name.opt:该文件主要用来定义表的字符集及其排序规则。位于存储目录的指定数据库目录下。
(2)、使用每表一个独立的表空间文件来存储
这种方式,需要编辑mysql的配置文件,添加如下行即可:
#vim /etc/my.cnf
innodb_file_per_table = 1
然后重启mysqld服务即可。
这种储存方式每个表也包含三个文件:
tb_name.frm:表结构定义文件
tb_name.ibd:表空间文件(用来储存表数据和表索引)
tb_name.opt:表参数文件,里面定义了表使用的字符集以及字符的排序规则
2、支持事务、表锁,页锁、行级锁
3、聚簇索引、辅助索引、自适应hash索引。(聚簇索引之外的其他索引,通常称之为辅助索引)
4、支持mvcc(多版本并发控制)
5、支持热备
6、支持外键约束
MRG_MYISAM存储引擎的的特点
可以将2个结构相同的MyISAM表合并成一个表。
ARCHIVE存储引擎
1、仅支持INSERT和SELECT,支持很好压缩功能
2、 应用于存储日志信息,或其他按照时间序列实现的数据采集类的应用
CSV存储引擎
将数据存储为CSV格式,不支持索引,仅使用与数据交换场景
BLACKHOLE存储引擎
没有存储机制,任何发往次引擎的数据都会丢弃,其会记录二进制日志,因此,常用于多级复制架构中作中转服务器
MEMORY存储引擎
1、保存数据在内存中,内存表;常用于保存中间数据,如周期性的聚合数据等,也用于实现临时表
2、支持hash索引,使用表级锁,不支持BLOB和TEXT数据类型
NDB存储引引擎
是MySQL CLUSTER中专用的存储引擎、
第三方的存储引擎
XtraDB存储引擎:增强的InnoDB,由Percona提供。
编译安装时,下载XtraDB的源码替代MySQL存储引擎中的InnoDB的源码
PBXT存储引擎:MariaDB自带此存储引擎
1、支持引擎级别的复制、外键约束,对SSD磁盘提供适当支持
2、支持事务、MVCC
TokuDB存储引擎:使用Fractal Trees索引,适用存储大数据,拥有很好的压缩比,已经被引入MariaDB。