HyperSQL存储引擎 (java写的)
文档 http://hsqldb.org/doc/2.0/guide
MYSQL-8.0的所有存储引擎(c/c++写的)
1.NDB Cluster存储引擎 网络数据库集群
mysql-7.2后的存储引擎,8.0后正式版
“NDB” 全称为 “Network Database”.
NDB Cluster是集群内存数据库技术
NDB Cluster最初仅以内存形式实现,但当前所有可用版也提供了磁盘存储
NDB Cluster被设计为没有任何单点故障
-
它支持事务。但仅支持 READ COMMITTED事务隔离级别(它只有三种隔离级别。没有实现重复读,即MVCC引擎)
-
它用的是内存索引
-
每个NDB表都必须具有主键
-
不支持临时表
-
不支持FULLTEXT索引。
-
不支持索引前缀。只有完整的列可以被索引
-
在NDB 8.0,表行的最大大小为14 KB,排除BLOB类型,行数没有限制,行数取决于内存限制
-
关闭NDB群集后,内存中的数据将写入磁盘,并在下次启动群集时重新加载到内存中
共有三种类型的节点,对应于集群中的角色
管理节点
该节点为整个集群提供管理服务,包括其他节点的启动,关闭,备份和配置数据。
管理节点服务器被实现为应用程序,有个客户端叫ndb_mgmd(NDB群集管理客户端);
数据节点
用于节点存储和复制数据。它有一个 ”angel process”天使进程,用于检查(实际处理数据的主数据节点进程)是否正在运行
SQL节点
这只是Mysql-Server (即mysqld)的一个实例。
要运行一个可行的群集,至少需要三台计算机
一台同时充当管理节点
与SQL节点
,两台充当数据节点
(提供数据冗余)。
可以使用公式来估算NDB表在群集每个数据节点需要多少内存
(SizeofDatabase × NumberOfReplicas × 1.1 ) / NumberOfDataNodes
官方常见问答 https://dev.mysql.com/doc/refman/8.0/en/faqs-mysql-cluster.html
官方文档描述 https://dev.mysql.com/doc/refman/8.0/en/mysql-cluster-overview.html
2.federated存储引擎 联合
这个引擎支持跨库连表查询
建表语句格式:
CREATE TABLE table_name(......)
ENGINE =FEDERATED CONNECTION='mysql://[username]:[password]@[location]:[port]/[db-name]/[table-name]'
3.archive存储引擎 档案
这个引擎只允许插入和查询,不允许修改和删除。
Archive表比MyISAM表要小大约75%,比支持事务处理的InnoDB表小大约83%
以zlib对表数据进行压缩,磁盘I/O更少
数据存储在ARZ为后缀的文件中
4.csv存储引擎
底层是用csv格式的excel存储, 你可以修改excel,数据表同时会发生变化
.CSM是表状态及表的数据量文件; .CSV是存放数据文件; .frm是表结构定义文件
-rw-rw---- 1 mysql mysql 35 Sep 1 14:29 table_csv.CSM
-rw-rw---- 1 mysql mysql 18 Sep 1 14:38 table_csv.CSV
-rw-rw---- 1 mysql mysql 8582 Sep 1 14:28 table_csv.frm
5.MRG_MYISAM存储引擎 合并的mysaim引擎
全称 merge存储引擎。 是相同类型文件可以被当作一个来用的myisam表的集合
和union原理相同,MRG_MYISAM不支持全文索引
INSERT INTO `test` (`name`) VALUES('beijing3');
SELECT * FROM test
-rw-rw---- 1 mysql mysql 8586 Feb 2 16:40 test1.frm
-rw-rw---- 1 mysql mysql 20 Feb 2 16:40 test1.MYD
-rw-rw---- 1 mysql mysql 2048 Feb 2 16:40 test1.MYI
-rw-rw---- 1 mysql mysql 8586 Feb 2 16:40 test2.frm
-rw-rw---- 1 mysql mysql 40 Feb 2 16:44 test2.MYD
-rw-rw---- 1 mysql mysql 2048 Feb 2 16:44 test2.MYI
-rw-rw---- 1 mysql mysql 8586 Feb 2 16:43 test.frm
-rw-rw---- 1 mysql mysql 32 Feb 2 16:43 test.MRG
(1)对于日志类应用的表.比如,你可以把每月的数据放进分离的表中,
用myisampack压缩这些表,创建一个MERGE表来把它们当作一个表来使用非常方便快捷.
(2)在查询速度上应该更优,对于一些表可以分割大的只读表,放进不同磁盘上的单个表中.
基于这个建立一个MERGE表会比单纯一个大表速度应该会快不少.
(3)超过操作系统的文件尺寸限制,每个MyISAM表都受制于这个限制,但是MRG_MYSIAM则不会.
6.blackhole存储引擎 黑洞
任何写入到此引擎的数据均会被丢弃掉, 不做实际存储;Select语句的内容永远是空
7.innodb存储引擎
修改快(行锁) 支持事务
略
8.mysaim存储引擎
插入快 查询快
略
9.memory存储引擎
略
供新手学习的极简java数据库 (支持sql,带教学视频与讲师)
vanilladb http://www.vanilladb.org/