mysql数据库引擎分析
相信大家在数据库开发中一定会经常遇到各种奇奇怪怪的问题,有可能你的数据库出的问题就是因为数据库引擎在作怪哦,最常见的可能就是添加外键的时候明明没有报错却不成功了。接下来将为大家分析几个常用mysql数据库的引擎:
ARCHIVE
ARCHIVE做为一个在MySQL5.0中引入的新的数据存储引擎,其主要侧重数据管理,他为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案,区别于InnoDB、MyISAM提供压缩功能,没有索引。性能据评测室很好的,但是由于没有索引功能,所以大家选择的时候要慎重
- 优点:拥有很高的插入速度
- 缺点:查询速度死慢
- 适用场景:用于存储大量的独立的历史数据
BLACKHOLE
顾名思义,这个引擎被人们称为‘黑洞引擎’,他在mysql中的描述是:anything you write to it disappears(你在其中存储的任何数据都会消失),你可能会问,这种奇葩存在的意义何在,他主要的用处在于binlog转储或测试等特殊场景,感兴趣的可以看一下这个文章:http://www.it165.net/database/html/201311/4861.html
- 优点:自动删除数据,无须手动删除(可能这个也不是什么优点)
- 缺点:自动删除数据,无须手动删除(可能这个也不是什么缺点)
- 适用场景:充当日志服务器
CSV
逗号分隔值(CSV)文件这个非常不常用的文件格式,大约只会在导入导出通讯录的时候接触到,因此在mysql中,其只用于拷入/拷出CSV文件,属于非常不常用的引擎
- 优点:无
- 缺点:无
- 适用场景:用于CSV文件操作
InnoDB
座位mysql中最常用的两个引擎之一,其最出名的一个功能就是外键了,若初学者在刚开始用mysql时遇到各种奇葩的问题,可能就是因为数据库引擎不是InnoDb。
- 优点:
- 支持事务。
- 可以从灾难中恢复(通过bin-log日志等)。
- 外键约束。只有他支持外键。
- 支持自动增加列属性auto_increment。
- 缺点:不适合Select
- 适用场景:一般场景,外键约束,update、insert多,select少
MEMORY
顾名思义,MEMORY的文件数据都存储在内存中,如果mysql进程终止、机器关机、重启,其表内数据都会消失,因此一般将其用于一次性数据。又因为其存储特性,其操作速度很快。
- 优点:响应速度飞起
- 缺点:不持久
- 适用场景:一次性存储的数据,不怕没得
MyISAM
mysql中最常用的两个引擎之二,其优点在于拥有较高的插入,查询速度,但不支持事务
- 优点:查询速度快,插入速度快
- 缺点:update慢,没有外键,不支持事务处理
- 适用场景:不想用InnoDB的时候
MRG_MYISAM
可以理解为是MyISAM存储的数据过多的时候,运行速度慢的时候的一个解决方式,即将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用
- 优点:无
- 缺点:无
- 适用场景:使用MyISAM的情况下优化速度.
PERFORMANCE_SCHEMA
MySQL5.5新增的一个存储引擎,主要是用来收集数据库服务器的性能参数。然而用户并不能新建这个表,一般也不建议大家修改。
- 优点:无
- 缺点:无
- 适用场景:其实用不了。。。。。
感谢大家的耐心观看,扇风笑