mysql的存储引擎主要有MyISAM,InnoDB,MEMORY, MERGE,NDB,最常用的是InnoDB和MyISAM.

MyISAM
MyISAM在磁盘存储成3个文件
- .frm(存储表定义)
- .MYD(MYData,存储数据)
- .MYI(MYIndex,存储索引)
MyISAM表支持3种不同的存储格式
- 静态(固定长度)表
- 动态表
- 压缩表
InnoDB
InnoDB存储表和索引
- 使用共享表空间储存:创建表的表结构保存在.frm文件中,数据和索引保存在innodb_data_home_dir和innodb_data_file_path定义的表空间中,可以是多个文件。
- 使用多表空间存储:创建表的表结构保存在.frm文件中,但是每个表的数据和索引单独保存在.ibd中。如果是个分区表,则每个分区对应单独的.ibd文件,文件名是”表名+分区名”
Memory
内存存储
- 优点:是将表内容直接存储在内存中,访问速度快
- 缺点:受max_heap_table_size系统变量的约束,初始值是16MB,可以根据需要加大。服务重启后,数据丢失。
- 适合存那些内容变化不频繁的代码表,或者作为统计操作的中间结果表
TokuDB
- 使用Fractal树索引保证高效的插入性能
- 优秀的压缩特性,比InnoDB高近10倍
- Hot Schema Changes特性支持在线创建索引和添加、删除属性列等DDL操作
- 使用Bulk Loader达到快速加载大量数据
- 提供了主从延迟消除技术
- 支持ACID和MVCC
使用场景
- 日志数据,频繁插入
- 历史数据,高压缩特性
- 在线DDL较频繁的场景
4427

被折叠的 条评论
为什么被折叠?



