加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL架构 - MySQL存储引擎 - 其他存储引擎

发布时间:2016-09-07 01:25:53 所属栏目:MySql教程 来源:站长网
导读:MEMORY (HEAP)引擎 当你需要快速读取数据,在服务器重启后,也不需要改变和保存数据,使用 Memory表(以前叫做HEAP 表)是非常合适的。 Memory表要比MyISAM表快
MEMORY (HEAP)引擎

当你需要快速读取数据,在服务器重启后,也不需要改变和保存数据,使用 Memory表(以前叫做HEAP 表)是非常合适的。

Memory表要比MyISAM表快上一个级别。所有的数据都放 在内存中,所以查询不用等待硬盘的I/O。在服务器重启后,表结构依然存在,但是数据都会丢失。

下面说几个可以用到Memory表的情况。

对于查找或映射表比较适合,如 邮政编码对应的 国家名称。

缓存定期的聚合数据。

分析数据时的中间结果。

Memory表支持HASH索引。这个索引 可以提升查询速度。以后会详细说明HASH索引。

虽然Memory表非常快,但是对于基于存储在硬盘 上的表的复制还是有问题的。它们使用表级别的锁定。并发性差。也不支持TEXT和BLOB类型。它们仅仅支 持定长的数据类型,所以即使使用了varchar也会被转为char来处理,这样内存就被浪费了。

MySQL内部使用Memory引擎时,需要用到临时表来存储中间数据。如果中间数据对于Memory表太大 ,或者有TEXT和BLOB字段,MySQL就会把它转为MyISAM表。以后会谈到这些。

一些朋友常常把 Memory表和临时表搞混,临时表使用通过CREATE TEMPORARY TABLE临时建立的表。临时表可以使用任意的 存储引擎。它们和内存表是不一样的。临时表仅仅对于单独的连接可见以及在连接关闭之后,就消失了。

Archive引擎

Archive仅仅支持INSERT和SELECT语句。它也不支持索引。这就比MyISAM减少了硬 盘的I/O.因为它缓存了写入的数据以及通过zlib压缩了每次增加的行。每次select查询都需要整张表的扫 描。对于日志和数据采集的应用来说用Archive是完美的了。因为这类应用经常扫描整张表来分析趋势。 或者你想在复制的主服务器快速插入数据。复制的从服务器可能对于相同的表使用不同的存储引擎。意思 就是在从服务器上的表可以加索引来提高分析的性能。

Archivie支持行级别的锁,并且有特殊的 缓存系统来提高插入的并发性。它在查询开始时获得整个表的行数,在这之后通过停止SELECT语句达到一 致读的效果。在批量插入完成之前,它们都是不可见的。这些特性模仿了支持事物的存储引擎,以及MVCC 的特点。但是Archive并不是支持事物的存储引擎,它仅仅是一个优化了批量插入的速度和压缩数据的引 擎。

CSV引擎

CSV引擎把存有逗号分割值的CSV文件作为一个表。但是它并不支持索引。CSV允许 在服务器运行的时候,随意拷入拷出数据库。如果你从电子表格中导出CSV以及把它保存在MySQL的data目 录,服务器可以及时的读取他。同样的,如果你写入数据到CSV表。外部的程序也可以马上读取它。CSV表 对于数据交换和特定种类的日志尤为适合。

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读