香港服务器MySQL内建的其他存储引擎

作者:港云互联 时间:2019-09-24

        MySQL还有一些有特殊用途的存储引擎。在新版本中,有些可能因为一些原因已经不再支持;另外还有些会继续支持,但是需要明确地启用后才能使用。

香港服务器

Archive引擎


        Archive存储引擎只支持INSERT和SELECT操作,在MySQL 5.1之前也不支持索引。Archive引擎会级存所有的写井利用zlib对插入的行进行压缩,所以比MyISAM表的磁盘I/O更少。但是每次SELECT查询都需要执行全表扫描。所以Archive表适合日志和数据采集类应用,这类应用做数据分析时往需要全表扫描。或者在一些需要更快速的INSERT操作的场合下也可以使用。


        Archive引擎支持行级锁和专用的缓冲区,所以可以实现高并发的插人,在一个查询开始直到返回表中存在的所有行数之前,Archive 引擎会阻止其他的SELECT执行,以实现一致性读。 另外,也实现了批量插入在完成之前对读操作是不可见的,这种机制模仿了事务和MVCC的一些特性, 但Archive引擎不是一个事务型的引擎,而见一个针对高速插入和压缩做了优化的简单引擎。


Blackhole引擎


        Blackhole引擎没有实现任何的存储机制,它会丢弃所有插人的数据,不做任何保存。但是香港服务器会记录Blackhole表的日志,所以可以用于复制数据到备库,或者只是简单地记录到日志。这种特殊的存储引擎可以在一些特殊的复制架构和8志审核时发挥作用。但这种应用方式我们碰到过很多问题,因此并不推荐。


CSV引擎


        CSV引擎可以将普通的CSV文件(逗号分割值的文件)作为MySQL的表来处理,但这种表不支持索引。CSV引擎可以在数据库运行时拷人或者拷出文件。可以将Excel等电子表格软件中的数据存储为CSV文件,然后复制到MySQL数据目录下,就能在MySQL中打开使用。同样,如果将数据写人到一个CSV引擎表,其他的外部程序也能立即从表的数据文件中读取CSV格式的数据。因此CsV引擎可以作为一种数据交换的机制,非常有用。


Federated引擎


        Federated 引擎是访问其他MySQL服务器的一个代理,它会创建个到远程 MySQL香港服务器租用的客户端连接,并将查询传输到远程香港服务器执行,然后提取或者发送需要的数据。最初设计该存储引擎是为了和企业级数据库如Microsoft SOL Server和Orale的类似特性竞争的,可以说更多的是一种市场行为。 尽管该引擎看起来提供了一种很好的跨香港服务器的灵话性,但也经常带来问题,因此默认是禁用的。MariaDB使用了它的一个后续改进版本,叫做FederaedX。


Memory引擎


        如果需要快速地访问数据,并且这些数据不会被性改,重启以后丢失也没有关系,那么使用Memory表(以前也叫做HEAP表)是非常有用的。Memory表至少比MyISAM表要快一个数量级,因为所有的数据都保存在内存中,不需要进行磁盘I/O。Memory表的结构在重启以后还会保留,但数据会丢失。


Memroy表在很多场景可以发挥好的作用:


用于查找 (lookup) 或者映射(mapping) 表,例如将邮编和州名映射的表。


●用于缓存 周期性聚合数据(periodically aggregated data)的结果。


●用于保存数据分析中产生的中间数据。


        Memory表支持Hash索引,因此查找操作非常快。虽然Memory表的速度非常快,但还是无法取代传统的基于磁盘的表。Memroy 表是表级锁,因此并发写人的性能较低。它不支持BLOB或TEXT类型的列,并且每行的长度是固定的,所以即使指定了VARCHAR 列,实际存储时也会转换成CHAR,这可能导致部分内存的浪费(其中一些限制在 Percona版本已经解决)。


        如果MySQL在执行查询的过程中需要使用临时表来保存中间结果,内部使用的临时表就是Memory表。如果中间结果太大超出了Memory表的限制,或者含有BLOB或TEXT字段,则临时表会转换成MyISAM表。在后续我们还会继续讨论该问题。


        人们经常混淆Memory 表和临时表。 临时表是指使用CREATE TBMPORARY TABLE语句创建的表, 它可以使用任何存储引擎,因此和Memory表不是回事。临时表只在单个连接中可见, 当连接断开时,临时表也将不复存在。


Merge引擎


        Merge引擎是MyISAM引擎的一个变种。Merge 表是由多个MyIsAM表合并而来的虚扣表。如果将MySQL用于日志或者数据仓库类应用,该引擎可以发挥作用。但是引入分区功能后,该引擎已经被放弃。


NDB集群引擎


        2003年,当时的MySOL AB公同从素尼爱立信公司收购T NDB数据库,然后开发了NDB集群存储引擎,作为sQL和NDB原生协议之间的接口。MySOL香港站群服务器、NDB 集群存储引擎,以及分布式的、share nothing的、容灾的、高可用的NDB数据库的组合,被称为MysSQL集群(MySQL Custe)。




新人注册,即送价值满880元现金劵

立即注册>>
客服 电话 反馈 活动 回顶部

服务热线

+852-5764-9835

1对1贴心服务,7X24小时热线