文档详情

MariaDB数据库存储引擎详解选编.doc

发布:2017-04-17约6.95千字共10页下载文档
文本预览下载声明
MariaDB数据库存储引擎详解 在看MariaDB的存储引擎之前,可以先了解MySQL存储引擎。 MySQL常用的存储引擎: MyISAM存储引擎:是MySQL的默认存储引擎。MyISAM不支持事务、也不支持外键,但其访问速度快,对事务完整性没有要求。? MyISAM表还支持3中不同的存储格式:? 1 静态表? ?2 动态表? ?3 压缩表? 静态表是默认的存储格式,静态表中的字段都是非变长的字段,优点是:存储非常迅速,容易缓存,出现故障容易恢复;缺点是:占用的空间通常比动态表多。(注意: ?在存储时,列的宽度不足时,用空格补足,当时在访问的时候并不会得到这些空格)? ?动态表的字段是变长的,优点是:占用的空间相对较少,但是频繁地更新删除记录会产生碎片,需要定期改善性能,并且出现故障的时候恢复相对比较困难。? ?压缩表占用磁盘空间小,每个记录是被单独压缩的,所以只有非常小的访问开支。? MyISAM表存储为三个文件:.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI (MYIndex) InnoDB存储引擎:提供了具有提交、回滚和崩溃恢复能力的事务安全。但是比起MyISAM存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。? MEMORY(heap)存储引擎:memory实际是heap的替代品。使用存在内存中的内容来创建表。每个MEMORY表只实际对应一个磁盘文件(只包含表定义)。 优点:MEMORY类型的表访问非常得快,因为它的数据是放在内存中的,并且默认使用HASH索引 缺点:一旦服务关闭,表中的数据就会丢失掉。其只支持表锁,并发性能较差,并且不支持TEXT和BLOB列类型.存储变长字段(varchar)时是按照定常字段(char)的方式进行的,因此会浪费内存 MERGE(mrg_myisam)存储引擎:是一组MyISAM表的组合,这些MyISAM表必须结构完全相同。MERGE表本身没有数据,类似于一个视图.对MERGE类型的表进行查询、更新、删除的操作,就是对内部的MyISAM表进行的。似乎看到分区表的影子,但完全是两种不同的东西. 官网说明:/kb/en/merge/ archive存储引擎:这种类型只支持select 和 ?insert语句,而且不支持索引。非常适合存储大量的独立的作为历史记录的数据。Archive???有高效的插入速度,但其对查询的支持相对较差常,应用于日志记录和聚合分析方面。 Federated: 将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用 CSV: ?逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个.CSV文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV存储引擎不支持索引。 BlackHole :黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继 ?MYSQL 中的部分存储引擎的特性: AttributeMyISAMHeapBDBInnoDBTransactions(支持事务)NoNoYesYesLock granularity(锁粒度)TableTablePage (8 KB)RowStorage(存储)Split filesIn-memorySingle file per tableTablespace(s)Isolation levels(隔离级别)NoneNoneRead committedAllPortable format(可移植性)YesN/ANoYesReferential integrity(参照完整性,似乎是对外键的支持)NoNoNoYesPrimary key with dataNoNoYesYesMySQL?caches data recordsNoYesYesYesAvailability(支持的版本)All versionsAll versionsMySQL-MaxAll Versions MariaDB?与 MySQL 相比较 MariaDB 提供以下特性: XtraDB 替换 InnoDB(在MariaDB中 使用InnoDB等同于XtraDB),XtraDB 是 Percona 开发维护的 InnoDB 威力加强版,整合 ?Google、Facebook 等公司和 MySQL 社区的补丁。XtraDB 存储引擎是完全的向下兼容,在 MariaDB 中,XtraDB 存储引擎被标识为ENGINE=InnoDB,这个与 InnoDB 是一样的,所以你可以直接用XtraDB 替换
显示全部
相似文档